题目大意: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的更多相关文章

随机推荐

  1. node中的流程控制中,co,thunkify为什么return callback()可以做到流程控制?

    前言 我在学习generator ,yield ,co,thunkify的时候,有许多费解的地方,经过了许多的实践,也慢慢学会用,慢慢的理解,前一阵子有个其他项目的同事过来我们项目组学习node,发现 ...

  2. Dynamic Web Project创建及版本修改的问题

    java项目中,若切换服务器,经常会涉及到动态web模块版本的问题.      比如:新建了web项目,开始使用tomcat服务器,但是后来使用jboss服务器,就会出现:Project facet ...

  3. vue中的重要特性

    一.vue中的自定义组件 html的代码: <!DOCTYPE html> <html lang="en"> <head> <meta c ...

  4. js获取和设置DOM样式函数cssStyle(类似于jquery的$(elem).css())

    如题,相信这个函数百度一搜一大推,但令人匪夷所思的是这些函数都写的“奇形怪状的”,例如http://www.cnblogs.com/windows7/archive/2010/03/30/170064 ...

  5. css下拉菜单效果

    <style> *{padding: 0; margin: 0;} .menu {} li { list-style-type: none; } .menu li {float: left ...

  6. thinkphp 字段静态验证$_validate中错误提醒多语言化写成{%LANGUATE}的原因

    class UserModel extends Model{ protected $_validate =  array( array('account', 'require', '{%LANGUAG ...

  7. jquery实现radio按纽全不选和checkbox全选的实例

    用jquery实现以下两个这个功能: 1.对所有单选按纽中radio全不选 单选按纽:<input type="radio" name="f1">A ...

  8. ASP.NET MVC5学习笔记之Action参数模型绑定值提供体系

    这一节我们关注模型绑定的值提供体系,先来介绍几个重要的接口 一. IValueProvider,接口定义如下: public interface IValueProvider { bool Conta ...

  9. STM32F0xx_DMA收发USART数据配置详细过程

    前言 关于DMA(Direct Memory Access)的功能,前面关注我微信的人应该知道,其实我已经在F1芯片上简单讲了一下.有网友要求在F0讲解一下使用DMA收发串口数据.今天就应网友要求总结 ...

  10. 文件系统 第八次迭代 VFS相关说明

    麻烦访问evernote链接 http://www.evernote.com/shard/s133/sh/53e5b5ac-1192-4910-8bd5-6886218562af/59516c32a5 ...