Codeforces Round #233 (Div. 2)D. Painting The Wall 概率DP

                                                                               D. Painting The Wall

User ainta decided to paint a wall. The wall consists of n2 tiles, that are arranged in an n × n table. Some tiles are painted, and the others are not. As he wants to paint it beautifully, he will follow the rules below.

  1. Firstly user ainta looks at the wall. If there is at least one painted cell on each row and at least one painted cell on each column, he stops coloring. Otherwise, he goes to step 2.
  2. User ainta choose any tile on the wall with uniform probability.
  3. If the tile he has chosen is not painted, he paints the tile. Otherwise, he ignores it.
  4. Then he takes a rest for one minute even if he doesn't paint the tile. And then ainta goes to step 1.
 

However ainta is worried if it would take too much time to finish this work. So he wants to calculate the expected time needed to paint the wall by the method above. Help him find the expected time. You can assume that choosing and painting any tile consumes no time at all.

Input

The first line contains two integers n and m (1 ≤ n ≤ 2·103; 0 ≤ m ≤ min(n2, 2·104)) — the size of the wall and the number of painted cells.

Next m lines goes, each contains two integers ri and ci (1 ≤ ri, ci ≤ n) — the position of the painted cell. It is guaranteed that the positions are all distinct. Consider the rows of the table are numbered from 1 to n. Consider the columns of the table are numbered from1 to n.

Output

In a single line print the expected time to paint the wall in minutes. Your answer will be considered correct if it has at most 10 - 4 absolute or relative error.

Sample test(s)
input
5 2
2 3
4 1
output
11.7669491886
input
2 2
1 1
1 2
output
2.0000000000
input
1 1
1 1
output
0.0000000000

题意:有一个n*n的墙,现在小明来刷墙,如果每一行每一列都至少有一个格子刷过了就停止工作,否则每次随机选一个格子,如果刷过了就不刷如果没刷过就刷,然后休息一分钟,求停止工作时时间的数学期望(开始之前已经有m个格子刷过了)
题解:dp[i][j]表示还有i行j列未刷
初始化: dp[i][0]=((n-i)/n)*dp[i][0]+dp[i-1][0]*i/n+1;
dp[0][j]=((n-j)/n)*dp[0][j]+dp[0][j-1]*j/n+1;
转移: dp[i][j]=dp[i][j]*(n-i)(n-j)/n^2+dp[i-1][j]*(i*(n-j))/n^2+dp[i][j-1]*((n-i)*j)/n^2+dp[i-1][j-1]*(i*j)/n^2+1;

#include<iostream>
#include<cstdio>
using namespace std;
double dp[2010][2010];
int n,m,a[2010],b[2010];
int main()
{cin>>n>>m;int x,y;int l=n,r=n;for(int i=0; i<m; i++){cin>>x>>y;if(!a[x]) l--;if(!b[y]) r--;a[x]=1,b[y]=1;}for(int i=1; i<=n; i++) dp[i][0]=dp[i-1][0]+(double)n/i;for(int j=1; j<=n; j++) dp[0][j]=dp[0][j-1]+(double)n/j;for(int i=1; i<=n; i++){for(int j=1; j<=n; j++){dp[i][j]=(dp[i-1][j]*i*(n-j)+n*n+dp[i][j-1]*j*(n-i)+dp[i-1][j-1]*i*j)/(n*n-(n-i)*(n-j));}}printf("%0.10f\n",dp[l][r]);return 0;
}
代码

 

转载于:https://www.cnblogs.com/zxhl/p/4846283.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/431304.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ahp层次分析法_基于层次分析法(AHP)的店铺选址应用研究

导读在连锁行业&#xff0c;店铺选址是其中很重要的一个方面。影响店铺选址的指标(因素)很多&#xff0c;决策中经常需要对店铺影响各指标进行量化分析。本文应用层级分析法(AHP)&#xff0c;对影响店铺选址的指标(因素)权重进行量化分析&#xff0c;以帮助决策者从备选的多个店…

html页面刷新回到顶部_页面刷新后,使页面自动滚回到顶部

比如有一个页面&#xff0c;滚动条在body上&#xff0c;当页面滚动到下方时&#xff0c;如何在刷新后使页面滚动回初始位置&#xff1f;已尝试但是失效的方案&#xff1a;$("body").scrollTop(0);window.scrollTo(0,0);document.body.scrollTop0;除了页面跳转&#x…

当c语言表达式中同时有字符 整数,c语言第2章数据类型、运算符与表达式a.ppt

c语言第2章数据类型、运算符与表达式aC语言程序设计;本章主要学习任务;2.1 C的数据类型;注意&#xff1a;C语言中的数据有变量与常量&#xff0c;它们分别属于上述这些类型。;2.2 常量与变量;不是C语句&#xff0c;不必在行末加分号。该命令是用标识符代替一个字符串&#xff0…

构造函数和clone以及在继承中

构造函数 类实例的构造创建过程是: 1.属性域被初始化为默认值(0,false,null) 2.按照在类声明的顺序初始化初始化语句和初始化块. 3.执行构造函数 所以,一个默认的空的无参构造函数并没有初始化类的实例域.因为实例域先于构造而初始化完毕了.构造函数无法被继承如果一个类没有定…

python批量删缩进_鬼畜小姐姐+野狼disco,十分钟教你如何用Python剪辑一个牛逼的抖音小视频?...

鬼畜小姐姐野狼disco&#xff0c;十分钟教你如何用Python剪辑一个牛逼的抖音小视频&#xff1f;前言半个月前&#xff0c;后台有个小伙伴问我&#xff0c;如何将视频中的音频提取出来&#xff0c;并且将声音转成文字写入到 word 中&#xff0c;正好接下来的文章要用到百度的语音…

web无序列表去掉点_无序列表排序之方法

利用jQuery对无序列表排序的原理是&#xff1a;获取到无序列表中的所有列表项&#xff0c;并转成数组形式&#xff0c;使用JavaScript函数对其进行排序后再次输出。其中使用到的jQuery函数有ready()、get()、text()、each()、append()和JavaScript函数sort()。1&#xff0e;jQu…

c语言编程怎么实现替换,使用C语言实现字符串中子字符串的替换

描述&#xff1a;编写一个字符串替换函数&#xff0c;如函数名为 StrReplace(char* strSrc, char* strFind, char* strReplace)&#xff0c;strSrc为原字符串&#xff0c;strFind是待替换的字符串&#xff0c;strReplace为替换字符串。举个直观的例子吧&#xff0c;如&#xff…

数据结构:点之间的最短距离--Floyd算法

Floyd算法 Floyd算法 Dijkstra算法是用于解决单源最短路径问题的&#xff0c;Floyd算法则是解决点对之间最短路径问题的。Floyd算法的设计策略是动态规划&#xff0c;而Dijkstra採取的是贪心策略。当然&#xff0c;贪心算法就是动态规划的特例。 算法思想 点对之间的最短路径仅…

shell 获取家目录_一篇教会你写90%的shell脚本

shell是外壳的意思&#xff0c;就是操作系统的外壳。我们可以通过shell命令来操作和控制操作系统&#xff0c;比如Linux中的Shell命令就包括ls、cd、pwd等等。总结来说&#xff0c;Shell是一个命令解释器&#xff0c;它通过接受用户输入的Shell命令来启动、暂停、停止程序的运行…

数据结构c语言版第四章题库,数据结构(C语言版)(第4版)习题

数据结构(C语言版)(第4版)习题 习题 11.1 选择题。(1)计算机识别、存储和加工处理的对象统称为 。A&#xff0e;数据 B.数据元素 C.数据结构 D.数据类型(2)数据结构通常是研究数据的 及它们之间的联系。A&#xff0e;存储和逻辑结构 B.存储和抽象 C.理想和抽象 D.理想和逻辑(3)…

C++刷称号——2707: 素数与要素

Description 从键盘输入的随机整数n&#xff0c;如果n不是质数&#xff0c;然后计算n所有的因素&#xff08;不含1&#xff09;。例如&#xff0c;对于16&#xff0c;出口2,4,8&#xff1b;否则输出“It is a prime number.” 推断素数和需求因素已完成功能。 Input 随机整数n …

通州区机器人比赛活动总结_马驹桥镇中心小学在2017通州区青少年机器人竞赛中勇创佳绩...

2017年2月26日&#xff0c;北京市通州区马驹桥镇中心小学在“2017通州区青少年机器人竞赛”中取得优异的成绩。来自通州区29所中小学的218选手参加了此次比赛&#xff0c;共有6项机器人挑战赛&#xff1a;ASC项目、WER项目、FLL项目、综合技能项目、VEX项目、创意项目。马驹桥镇…

python opencv输出mp4_Python玩转视频处理(四):视频按场景进行分割

在上一篇文章&#xff08;python在手&#xff0c;女神视频轻松有&#xff09;分享了用AI人脸识别技术标记人物出现时间点来截取视频片段的教程&#xff0c;它的局限性在于只能通过识别特定的对象&#xff08;比如人脸&#xff09;来操作。在本文中将分享一个按场景进行分割视频…

lvm 扩展根目录_转://如何增加linux根目录的磁盘空间(基于LVM)?

问题引出&#xff1a;在测试过程中替换so文件&#xff0c;报磁盘空间不足的错误。▲问题分析&#xff1a;由于当时系统部署架构的考虑&#xff0c;把软件和数据库部署在了同一台机器上&#xff0c;并且给了30G的磁盘空间。系统上占用磁盘空间的有2部分&#xff0c;一是软件本身…

图形基本变换c语言代码,图形变换-C语言课程设计.doc

学号《》课程设计报告图形变换网络工程班级&#xff1a;16(3)姓名&#xff1a;指导教师&#xff1a;成绩&#xff1a;计算机学院2017 年 5月 10日目录- 1 -1 设计要求- 2 -2 程序功能- 2 -3 核心算法- 2 -4 程序代码- 2 -5 运行结果- 2 -6 程序创新说明- 3 -参考文献- 3 -C语言…

stm32 isp下载官方软件android_OpenCanvas免费版下载_OpenCanvas绘图软件官方版下载7.0.25...

OpenCanvas 是一款小巧的CG手绘软件&#xff0c;让用户在使用数位板在电脑上绘图时&#xff0c;就像是在纸上手绘一样&#xff0c;可以画出极为细致的图像。OpenCanvas功能简捷、体积小巧、运行速度快&#xff0c;大家可以很快上手&#xff0c;非常适合入门级手绘爱好者使用。对…

centos7限制cpu使用_CentOS7 CPU隔离配置

1. 修改grubCentOS7中grub存放位置在&#xff1a;/etc/default/grub初始内容如下&#xff1a;1 [rootdellserver default]# catgrub2 GRUB_TIMEOUT53 GRUB_DISTRIBUTOR"$(sed s, release .*$,,g /etc/system-release)"4 GRUB_DEFAULTsaved5 GRUB_DISABLE_SUBMENUtrue…

c语言solaris中图形库,成功弄出simics下的CDE登录界面,与大家分享

simics下的cde可以在安装的时候&#xff0c;就启动图形console进行安装&#xff0c;让installer自动配置图形console&#xff0c;也可以先用默认的text console进行安装&#xff0c;之后再进行配置。我用的方法是先用text console安装&#xff0c;安装完成后再启动图形console。…

【转】图文详解YUV420数据格式

YUV格式有两大类&#xff1a;planar和packed。 对于planar的YUV格式&#xff0c;先连续存储所有像素点的Y&#xff0c;紧接着存储所有像素点的U&#xff0c;随后是所有像素点的V。对于packed的YUV格式&#xff0c;每个像素点的Y,U,V是连续交*存储的。 YUV&#xff0c;分为三个分…

python安装pip_在MAC下安装pip,并关联到相应的python版本

在MAC下安装pip&#xff0c;并关联到相应的python版本 博客说明 文章所涉及的资料来自互联网整理和个人总结&#xff0c;意在于个人学习和经验汇总&#xff0c;如有什么地方侵权&#xff0c;请联系本人删除&#xff0c;谢谢&#xff01; 说明 不多说了&#xff0c;说就是电脑重…