LightOJ1265-Island of Survival
2017-04-27 16:43
351 查看
Island of Survival
题意:有一个生存游戏,里面t只老虎,d只鹿,还有一个人,每天都要有两个生物碰面,现在有以下规则
1.老虎和老虎碰面,两只老虎就会同归于尽
2.老虎和人碰面或者和鹿碰面,老虎都会吃掉对方
3.人和鹿碰面,人可以选择吃或者不吃该鹿
4.鹿和鹿碰面,相安无事
问人存活下来的概率
解题思路:人生存下来的条件就是不被老虎吃掉,所以只要所有的老虎都同归于尽了,人就可以生存下来了。如果老虎的数量是奇数,那么人总有一天会被吃掉的,如果老虎的数量是偶数,那就算一下所有老虎同归于尽的概率,这个概率就是人存活下来的概率了。鹿可以忽略不计。在时间无限的情况下,老虎没死光的话,鹿总有一天是会被全部吃掉的
当老虎的数量是偶数是:总情况就是在tiger + 1(老虎和人)里面选两个碰面C(tiger + 1, 2); 两只老虎碰面的情况是C(tiger, 2),所以两只老虎碰面的概率是(tiger - 1) / (tiger + 1)
#include <iostream>
#include <cstdio>
#include <string>
#include <cstring>
#include <algorithm>
#include <queue>
#include <cmath>
#include <vector>
#include <set>
#include <bitset>
#include <stack>
#include <map>
#include <climits>
#include <functional>
using namespace std;
#define LL long long
const int INF=0x3f3f3f3f;
const double eps=1e-8;
int main()
{
int t,cas=1;
scanf("%d",&t);
while(t--)
{
int x,y;
scanf("%d %d",&x,&y);
if(x == 0) printf("Case %d: 1\n",cas++);
else if(x%2==1) printf("Case %d: 0\n",cas++);
else
{
double ans=1.0;
while(x)
{
ans*=(x-1.0)/(x+1.0);
x-=2;
}
printf("Case %d: %.6f\n",cas++,ans);
}
}
return 0;
}
相关文章推荐
- LightOJ1265---Island of Survival (概率dp)
- LightOJ 1265 Island of Survival
- LightOJ 1265 Island of Survival
- LightOJ 1265 Island of Survival(概率DP)
- 【LightOJ 1265】Island of Survival(概率DP)
- LightOJ1265 - Island of Survival
- LightOJ1265---Island of Survival (概率问题)
- LightOj:1265-Island of Survival
- LightOJ 1265 Island of Survival(概率DP)
- LightOJ_1265:Island_of_Survival(概率DP/想法题)
- Island of Survival LightOJ - 1265
- LightOj 1265 - Island of Survival(概率)
- lightoj 1265 Island of Survival
- LightOJ1265---Island of Survival
- LightOJ 1065 Island of Survival (概率DP?)
- light oj 1265 - Island of Survival(概率dp)
- LightOJ - 1265 Island of Survival 期望
- lightoj 1265 Island of Survival 概率
- Lightoj1265 Island of Survival 概率题
- LightOJ-1265-Island of Survival (概率dp)