codeforces399D
题目大意:ainta刷一面n*n的二维墙。墙一开始可能有一些块被刷了。
他终止刷墙的前提是墙的每一行每一列都至少有一块被刷。
他每一次从n*n的墙随机选择一块,如果这一块没有被刷就刷,刷了就无视,刷墙不计入时间,刷完一块之后要休息一分钟(不管无视了没有都要休息)。
他想求期望终止时间是多少。(中国好队友z55250825友情翻译)
n<=2000,m<=n^2
首先我们压缩一下状态,因为这个状态有很多重复的,我们需要记下的只有有多少行被占领了,所以我们记F[i][j]表示还有i行没有占领,还有j列没有占领从这个状态到终止状态的期望时间。
递推方程也比较容易想,状态[i][j]能够到达的状态是[i][j],[i-1][j],[i][j-1],[i-1][j-1],概率也容易算
F[i][j]=
化简一下就是
F[i][j]=
然后注意一下边界情况
#include <cstdio>
using namespace std; int n,m,l,r;
bool a[],b[];
double f[][]; int main() {
scanf("%d%d",&n,&m);
l=n;r=n;
int i,j,x,y;
for(i=;i<=m;++i){
scanf("%d%d",&x,&y);
if(!a[x])--l;
if(!b[y])--r;
a[x]=true;
b[y]=true;
}
for(i=;i<=l;++i)f[i][]=(n+i*f[i-][])/i;
for(j=;j<=r;++j)f[][j]=(n+j*f[][j-])/j;
for(i=;i<=l;++i)
for(j=;j<=r;++j)
f[i][j]=(n*n+i*(n-j)*f[i-][j]+(n-i)*j*f[i][j-]+i*j*f[i-][j-])/(n*n-(n-i)*(n-j));
printf("%0.8lf\n",f[l][r]);
//printf("%d %d\n",l,r);
return ;
}
codeforces399D的更多相关文章
随机推荐
- 利用DIV+CSS制作网页过程中常用的基本概念及标签使
CSS主要用于对HTML文件功能的补充及扩展,其作用就是对HTML文件中各种排版进行设置,达到对网页中字体.颜色.背景.图片等的控制,使网页能够完全依照设计者的想法来显示. CSS可以控制网页的显示, ...
- 2014年第五届蓝桥杯试题C/C++程序设计B组——李白打酒
题目描述: 标题:李白打酒 话说大诗人李白,一生好饮.幸好他从不开车. 一天,他提着酒壶,从家里出来,酒壶中有酒2斗.他边走边唱: 无事街上走,提壶去打酒. 逢店加一倍,遇花喝一斗. 这一路上,他一共 ...
- Sliverlight中PagedCollectionView的使用
最近项目中一直在和PagedCollectionView这个类打交道.通过它,我们可以以分页的形式自动处理并显示集合中的片段,尤其是和Pager控件配合的时候更能彰显其威力. PagedColecti ...
- pm2 开机自启动如何弄?
1.使用pm2启动node :# pm2 start /home/wwwroot/web.js --watch 2.dump这些进程列表:# pm2 save 3.生成自启动脚本:# pm2 star ...
- 神奇的fastcgi_finish_request
当PHP运行在FastCGI模式时,PHP FPM提供了一个名为fastcgi_finish_request的方法.按照文档上的说法,此方法可以提高请求的处理速度,如果有些处理可以在页面生成完后再进行 ...
- 从零开始之ecshop基础篇(17)
目标:基于自定义的mvc框架开发的案例(项目) 项目周期 需求分析 典型的业务逻辑: 电子商务:商城(京东),B2C,C2C(淘宝),团购,秒杀,代购 内容管理:新浪门户类,优酷视频管理, ...
- Java排序
给出10个数,使用某种排序方法,按照从小到大的顺序输出个个数. 根据要求,首先得给出这10个数,这里的算法需要一个循环,数据结构需要一个长度为10的整型数组.首先用BufferedReader in= ...
- AngularJs记录学习03
AngularJs的路由是一个组件,需要自己额外添加,在目录/src/ngRoute中 三个文件route.js,routeParams.js,ngView.js <html> <h ...
- PuTTY 中文教程
PuTTY 中文教程 更新记录 2006-11-29初步完成想写的这些东西 2007-06-11PuTTY 的最新版本到了0.6:修改了一下 SSH 隧道:添加了 SSH 反向隧道:添加了用 SSH ...
- 17.python自定义函数
什么是函数,函数说白了就是将一系列代码封装起来,实现代码的重用. 什么是代码重用? 假设我有这样的需求: 但是我还是觉得太麻烦了,每次想吃饭的时候都要重复这样的步骤.此时,我希望有这样的机器: