【HDOJ】1204 糖果大战
题目本身不难。类似于dp。f(i)表示手中现有i颗糖果赢的概率,则下一局赢的概率是p(1-q),下一局输的概率是q(1-p),下一句平手的概率是1-p(1-q)-q(1-p),平手包括两人均答对或答错。那么可推导状态转移方程:
f(i) = p(1-q)f(i-1) + q(1-p)f(i+1) + [ 1-p(1-q)-q(1-p) ]f(i)
归并相同项可以得到等比数列,p(1-q)(f(i) - f(i-1)) = q(1-p)(f(i+1) - f(i))。设定比例系数,并利用等比数列求和公式可求。其中需要注意的是,f(0)=0,f(n+m)=1,因为手中若已经有n+m颗糖果,则已经获得全部胜利。我们需要求的是f(n)的概率是多少。除了考虑n或m为0的情况,还有p或q为1/0的情况,还必须考虑等比系数为1的情况,当等比系数为1无法用等比求和公式时,则证明二者答对的概率相等,此时应当考虑两者的糖果数目(概率论等概率)。等比为1,很容易想不到,wa了很多次。
#include <stdio.h>
#include <math.h> int main() {
int m, n;
double p, q, winp, tmp; while (scanf("%d%d%lf%lf", &n, &m, &p, &q) != EOF) {
if (n == )
printf("0.00\n");
else if (m == )
printf("1.00\n");
else if (p== || q==)
printf("0.00\n");
else if (p== || q==)
printf("1.00\n");
else if (p == q) { // k==0
winp = 1.0*n/(m+n);
printf("%.2lf\n", winp);
} else {
tmp = q*(1.0-p) / (p*(1.0-q));
winp = (1.0-pow(tmp, n)) / (1.0-pow(tmp,n+m));
printf("%.2lf\n", winp);
}
} return ;
}
【HDOJ】1204 糖果大战的更多相关文章
- 糖果大战 hdu1204
糖果大战 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submis ...
- hdu_1024_糖果大战_201404021640
糖果大战 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submi ...
- HDU-1204-糖果大战
题目描述 生日\(Party\)结束的那天晚上,剩下了一些糖果,\(Gandon\)想把所有的都统统拿走,\(Speakless\)于是说:"可以是可以,不过我们来玩\(24\)点,你不是已 ...
- Num 34 : HDOJ : 1205 吃糖果 [ 狄利克雷抽屉原理 ]
抽屉原理: 桌上有十个苹果,要把这十个苹果放到九个抽屉里,不管如何放,我们会发现至少会有一个抽屉里面至少放两个苹果. 这一现象就是我们所说的" ...
- acdream 1682 吃不完的糖果(环形最大子段和)
Problem Description 娜娜好不容易才在你的帮助下"跳"过了这个湖,果然车到山前必有路,大战之后必有回复,大难不死,必有后福!现在在娜娜面前的就是好多好多的糖果还有 ...
- C - 娜娜梦游仙境系列——吃不完的糖果
C - 娜娜梦游仙境系列——吃不完的糖果 Time Limit: 2000/1000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Oth ...
- 【HDOJ 5654】 xiaoxin and his watermelon candy(离线+树状数组)
pid=5654">[HDOJ 5654] xiaoxin and his watermelon candy(离线+树状数组) xiaoxin and his watermelon c ...
- 原生js可爱糖果数字时间特效
效果展示:http://hovertree.com/texiao/js/35/ 数字采用漂亮的糖果皮肤设计 效果图: 代码如下: <!DOCTYPE html> <html> ...
- 3D坦克大战游戏源码
3D坦克大战游戏源码,该游戏是基于xcode 4.3,ios sdk 5.1开发.在xcode4.3.3上完美无报错.兼容ios4.3-ios6.0 ,一款ios平台上难得的3D坦克大战游戏源码,有2 ...
随机推荐
- 关于Masonry框架(AutoLayout)的用法--面向初学者
Masonry作为目前较为流行的自动布局第三方框架,简单易用,大大减少了程序员花在UI布局和屏幕适配的精力与时间. 1 基本用法 1.1 事例1: 图1-1 // 首先是view1自动布局 [view ...
- UIMenuController/UIPasteboard(1) 制作一个可以粘贴复制的Label
效果如下: 苹果只放出来了 UITextView,UITextField,webView三个控件的剪贴板,所以我们要自定义可以复制粘贴的控件,首先需要打开UIResponder的两个方法: - ( ...
- 牵扯较多属性和方法的类题目,很简单的题目本来不想发的,如果有同学学到这个题目感觉太长不愿敲代码,copy走我的即可~不过还是建议自己打一打
/* 3.设计一个"学生"类 1> 属性 * 姓名 * 生日 * 年龄 * 身高(单位是m) * 体重(单位是kg) * 性别 * C语言成绩 * OC成绩 * iOS成绩 ...
- POJ 1099 Square Ice
Square Ice Description Square Ice is a two-dimensional arrangement of water molecules H2O, with oxyg ...
- forever start Error: Cannot find module './daemon.v0.10.26'
我的技术博客经常被流氓网站恶意爬取转载.请移步原文:http://www.cnblogs.com/hamhog/p/3590158.html,享受整齐的排版.有效的链接.正确的代码缩进.更好的阅读体验 ...
- 第一个 MIC shared_memory 程序
设置Intel编译器的运行环境 在terminal中执行编译器的环境脚本 compilervars.sh: source <install-dir>/bin/compilervars.sh ...
- <<深入Java虚拟机>>-第二章-Java内存区域-学习笔记
Java运行时内存区域 Java虚拟机在运行Java程序的时候会将它所管理的内存区域划分为多个不同的区域.每个区域都有自己的用途,创建以及销毁的时间.有的随着虚拟机的启动而存在,有的则是依赖用户线程来 ...
- call_user_func
(PHP 4, PHP 5) call_user_func — 把第一个参数作为回调函数调用 mixed call_user_func ( callable $callback [, mixed $p ...
- IE专用CSS,最全的CSS hack方式一览
http://blog.csdn.net/freshlover/article/details/12132801
- 多站点FTP同步
需求描述: 由于工作的原因,发布程序时,经常需要将一站点的脚本.程序同步到其它的终端站点中,以保证所有站点的程序是同步的,用过FlashFtp,CuteFtp,LeapFtp等客户端工具,均于自己的需 ...