lightoj 1265 Island of Survival
2016-05-20 19:19
337 查看
题意:有一个生存游戏,里面t只老虎,d只鹿,还有一个人,每天都要有两个生物碰面,现在有以下规则
1.老虎和老虎碰面,两只老虎就会同归于尽
2.老虎和人碰面或者和鹿碰面,老虎都会吃掉对方
3.人和鹿碰面,人可以选择吃或者不吃该鹿
4.鹿和鹿碰面,相安无事
问人存活下来的概率。
思路:人生存下来的条件就是不被老虎吃掉,所以只要所有的老虎都同归于尽了,人就可以生存下来了,
如果老虎的数量是奇数,那么人总有一天会被吃掉的,
如果老虎的数量是偶数,那就算一下所有老虎同归于尽的概率,这个概率就是人存活下来的概率了,
鹿可以忽略不计,在时间无限的情况下,老虎没死光的话,鹿总有一天是会被全部吃掉的。
参考博客:http://blog.csdn.net/l123012013048/article/details/46380685
http://blog.csdn.net/houxinssdut/article/details/46365911
1.老虎和老虎碰面,两只老虎就会同归于尽
2.老虎和人碰面或者和鹿碰面,老虎都会吃掉对方
3.人和鹿碰面,人可以选择吃或者不吃该鹿
4.鹿和鹿碰面,相安无事
问人存活下来的概率。
思路:人生存下来的条件就是不被老虎吃掉,所以只要所有的老虎都同归于尽了,人就可以生存下来了,
如果老虎的数量是奇数,那么人总有一天会被吃掉的,
如果老虎的数量是偶数,那就算一下所有老虎同归于尽的概率,这个概率就是人存活下来的概率了,
鹿可以忽略不计,在时间无限的情况下,老虎没死光的话,鹿总有一天是会被全部吃掉的。
参考博客:http://blog.csdn.net/l123012013048/article/details/46380685
http://blog.csdn.net/houxinssdut/article/details/46365911
#include<cstdio> #define maxn 1010 double dp[maxn][maxn], ans; int n, t, d; void solve() { ans = 1.0; while(t) { ans *= 1.0 * (t - 1) / (t + 1); t -= 2; } } int main() { int test, cas = 1; scanf("%d", &test); while(test--) { scanf("%d%d", &t, &d); printf("Case %d: ", cas++); if(t == 0) { printf("1.0000000\n"); continue; } if(t % 2) { printf("0.0000000\n"); continue; } solve(); printf("%.7lf\n", ans); } return 0; }
相关文章推荐
- HDU——1233还是畅通工程(克鲁斯卡尔+优先队列)
- 互联网公司团队建设的几个要点
- LeetCode 342. Power of Four
- 对关系型数据库规范化理论理解的图解
- C++程序错误集锦,如:thiscall,_tmain已经定义,重载,未定义的标识符
- flume介绍及扩展开发心得
- Ioc(Inversion of Control)
- iOS多线程开发--NSThread NSOperation GCD
- 开闭、里氏代换、依赖倒转、单一职责、迪米特五种原则
- [微信开发] 微信网页授权Java实现
- Java学习笔记(六)
- 上传图片
- Java/Android 代码规范
- java设计模式学习-工厂模式
- apktool使用
- 树链剖分
- Python 进阶 —— 迭代器与生成器
- 【原】iOS学习之Swift之语法1(精简版)
- 如何把Android手机变成一个WIFI下载热点? — 报文转发及DNS报文拦截
- jQuery中登录友好提示系列(1)