义冢oj P5033打气球
目录
- 打气球
- 描述
- 輸入
- 輸出
- 輸入範例 1
- 輸出範例 1
- 思路
- Code
同步:https://buringstraw.win/index.php/archives/26/
打气球
描述
周末何老板到磁器口游玩。街边有小贩在组织一种打气球游戏,何老板很感兴趣。
店家立了一块布,布上画了N*N的方格,有的方格里挂上了气球,有的没有。
游戏规则如下:
第1步.观察。如果每一行都至少有一个方格没有气球,并且每一列都至少有一个方格没有气球,游戏结束。否则进行第2步。
第2步.抛骰子。店家拿出一个特制的骰子,该骰子有N个面,上面依次有1到N这N 个数字。玩家先后抛两次骰子,设第一次抛出的数字为x,设第二次抛出的数字为y (注:抛出的数字是随机的)。
第3步.打气球。若坐标为(x,y)的格子里有气球,玩家必须将其打爆。子弹1块钱一发。
如果该格子没有气球,忽略该格子,玩家不用开枪,但玩家也需要支付给店家1块钱。
第4步.继续。执行第1步。
何老板是个神枪手,他能做到百发百中。他想你帮他算算,对于当前给出的这局游戏,预计要花多少钱才能结束。
輸入
第一行,两个整数N和M,N表示方格的尺寸,M表示游戏开始时,有M个格子里是没有气球的。 接下来M行,每行两个整数x,y,表示坐标为x,y的格子里没有气球。
輸出
一行,一个实数,完成游戏预计花费,保留2个小数位。
輸入範例 1
5 2
2 3
4 1
輸出範例 1
11.77
更多样例请点击wyx大佬的博客
思路
这小贩真坑!
设f[i][j]
表示消掉i行j列的期望花费
每次选坐标有以下四种情况
- 不影响打掉的行列数量
- 增加一个打掉的行
- 增加一个打掉的列
- 同时增加打掉的行列各一个
对应的期望分别为
- \(f(i,j)\cdot \frac{(n-i)\cdot (n-j)}{n^2}\)
- \(f(i,j-1)\cdot \frac{(n-i)\cdot j}{n^2}\)
- \(f(i-1,j)\cdot \frac{i\cdot (n-j)}{n^2}\)
- \(f(i-1,j-1)\cdot \frac{ij}{n^2}\)
所以
\[ f(i,j)=f(i,j)\cdot \frac{(n-i)\cdot (n-j)}{n^2}+f(i,j-1)\cdot \frac{(n-i)\cdot j}{n^2}+f(i-1,j)\cdot \frac{i\cdot (n-j)}{n^2}+f(i-1,j-1)\cdot \frac{ij}{n^2}+1\\ f(i,j)[1-\frac{(n-i)(n-j)}{n^2}]=f(i,j-1)\cdot \frac{(n-i)\cdot j}{n^2}+f(i-1,j)\cdot \frac{i\cdot (n-j)}{n^2}+f(i-1,j-1)\cdot \frac{ij}{n^2}+1\\ f(i,j)[n^2-(n-i)(n-j)]=f(i,j-1)\cdot (n-i)\cdot j+f(i-1,j)\cdot i\cdot (n-j)+f(i-1,j-1)\cdot ij+n^2\\ f(i,j)=\frac{f(i,j-1)\cdot (n-i)\cdot j+f(i-1,j)\cdot i\cdot (n-j)+f(i-1,j-1)\cdot ij+n^2}{n^2-(n-i)(n-j)} \]
边界:
f[0][0]=0;
for(int i=1;i<=n;++i){f[0][i]=f[0][i-1]+1.0*n/i;f[i][0]=f[i-1][0]+1.0*n/i;
}
要死了噗
重点要注意的是输入的是没有气球的格子
我和hqx大佬被坑了好久嘤
Code
#include<cstdio>
#include<iostream>
using namespace std;const int MAXN=2000+5;int hang[MAXN],lie[MAXN];
double f[MAXN][MAXN];int main(){int n,m;scanf("%d%d",&n,&m);for(int i=1;i<=m;++i){int x,y;scanf("%d%d",&x,&y);hang[x]=1;lie[y]=1;}int h=n,l=n;for(int i=1;i<=n;++i){if(hang[i])--h;if(lie[i])--l;}f[0][0]=0;for(int i=1;i<=n;++i){f[0][i]=f[0][i-1]+1.0*n/i;f[i][0]=f[i-1][0]+1.0*n/i;}for(int i=1;i<=h;++i){for(int j=1;j<=l;++j){
// f[i][j]=f[i-1][j]*1.0*i*(n-j)/n/n+f[i][j-1]*1.0*(n-i)*j/n/n+f[i-1][j-1]*1.0*i*j/n/n+f[i][j]*1.0*(n-i)*(n-j)/n/n+1;f[i][j]=1.0*(f[i-1][j]*i*(n-j)+f[i][j-1]*(n-i)*j+f[i-1][j-1]*i*j+n*n)/(n*n-(n-i)*(n-j));}}printf("%.2lf\n",f[h][l]);return 0;
}
转载于:https://www.cnblogs.com/buringstraw/p/10386118.html
义冢oj P5033打气球相关推荐
- 厦理OJ——1003:第三届程序设计大赛 让气球飞起来
一.题目 Description 比赛又一次开始了,看着气球漂浮在周边是多么兴奋的事情啊,但是告诉你一个秘密,裁判最喜欢做的事情就是猜一个问题,即数目最多的气球颜色.当比赛结束时,他们会数每种颜色的气 ...
- 厦门理工 oj 1003 第三届程序设计大赛 让气球飞起来
Description 比赛又一次开始了,看着气球漂浮在周边是多么兴奋的事情啊,但是告诉你一个秘密,裁判最喜欢做的事情就是猜一个问题,即数目最多的气球颜色.当比赛结束时,他们会数每种颜色的气球数目并公 ...
- zcmu oj 1489:Problem A(数气球)
题目描述 Chieh love ACM, So he likes balloons. Today he sees many balloons in the shop. And he wants to ...
- 记萌新赛的命题过程与踩气球过程
从命题环节开始记起吧,踩气球部分放在后半段压轴. 大约$20$天以前,那天早上我刚下火车,得知今年比赛命题组组长是$xiang578$,老师发的命题人员名单中并没有我.出于对命题工作的好奇与热爱,我向 ...
- LeetCode简单题之“气球” 的最大数量
题目 给你一个字符串 text,你需要使用 text 中的字母来拼凑尽可能多的单词 "balloon"(气球). 字符串 text 中的每个字母最多只能被使用一次.请你返回最多可以 ...
- leetcode-452 用最少数量的箭引爆气球
在二维空间中有许多球形的气球.对于每个气球,提供的输入是水平方向上,气球直径的开始和结束坐标.由于它是水平的,所以y坐标并不重要,因此只要知道开始和结束的x坐标就足够了.开始坐标总是小于结束坐标.平面 ...
- 贪心:Burst Balloons 最少次数完成射击气球
已知在一个平面上有一定数量的气球,平面可以看作一个坐标系,在平面的x轴的不同位 置安排弓箭手向y轴方向射箭,弓箭可以向y轴走无穷远;给定气球的宽度 xstart ≤ x ≤ xend,问至少需要多少弓 ...
- 南大算法设计与分析课程OJ答案代码(5)--割点与桥和任务调度问题
问题 A: 割点与桥 时间限制: 1 Sec 内存限制: 5 MB 提交: 475 解决: 34 提交 状态 算法问答 题目描述 给出一个无向连通图,找到所有的割点和桥 输入 第一行:点的个数,如 ...
- 【青少年编程】【三级】打气球游戏
「青少年编程竞赛交流群」已成立(适合6至18周岁的青少年),公众号后台回复[Scratch]或[Python],即可进入.如果加入了之前的社群不需要重复加入. 微信后台回复"资料下载&quo ...
- 【ACM】杭电OJ 2037
题目链接:杭电OJ 2037 先把b[i]进行排序,然后,b[i]与a[i+1]进行比较. #include <iostream> #include <cstdio> #inc ...
最新文章
- App Store内购机制
- 使用BCH 操作码的三个新型应用程序
- Simulink仿真教程2---一些基本操作
- 在Eclipse中配置Tomcat服务
- MyBatis学习总结(三)——优化MyBatis配置文件中的配置
- php 中curd表达啥,CURD语句的基本语法和PDO中操作数据表的基本步骤实例演示增删改查命令 2019年07月24日 23时10分...
- 了解mysqlpump工具
- 设计模式——装饰者(Decorator)模式DEMO——游戏角色的装饰者模式实现
- redis 的线程模型是什么?为什么 redis 单线程却能支撑高并发?
- 一步一步学pwntools(适合新手)
- JVM中GC Root对象有哪些?
- Log图文详解(Log.v,Log.d,Log.i,Log.w,Log.e)!
- 给PhotoShop安装Portraiture插件
- 和 8 个程序员聊了一下午,集齐了这些经验!
- Illustrator 教程,如何在 Illustrator 中使用钢笔工具创建作品?
- 匈牙利算法求最大匹配
- 测试吃鸡fps软件,GTX1050Ti吃鸡足矣 2017热销游戏本吃鸡横评
- redis系列-redis的连接
- 内蒙古科技大学计算机专业校企合作好不好,校企合作真的靠谱吗 有什么坏处...
- HTML项目心得500字,心得体会作文500字(精选10篇)
热门文章
- win10文件服务器怎么进,如何从win10进入云服务器
- 用python爬取网页数据代码_python实现web页面数据抓取代码
- latex 参考文献显示问号_回「LaTeX 的罪与罚」
- gitlab-runner错误之:New runner. Has not connected yet(runner注册成功到了gitlab,但是前面的图标是灰色三角形)
- 证明不同特征值的实对称矩阵的特征向量相互正交的
- poj2142 The Balance
- 腾讯bugly android sdk镜像,Android 腾讯bugly接入记录教程
- 概率论与数理统计 期末突击复习
- 2020-10-31
- PREEMPT RT 实现原理