7_22_A题 Island of Survival(概率DP)
题意
一个岛上有老虎,鹿和人,给出老虎和鹿的数量,三种生物的碰面是随机的,两个老虎碰面都会死,老虎和其他生物碰面,其他生物被吃掉,问人活下来的概率。
思路
很显然,鹿在人和虎的生存中完全没有影响,可以直接不考虑,问题就变成了,一个人和一堆虎,一直是虎两两碰面的概率,当虎数为奇数时,概率为零。
当虎数为偶数时,设当前有n只虎,则当前两虎碰面的概率是
p=C2nC2n+1=n−1n+1
,累乘即可
代码
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int main(){
int T,kas= 1;;
cin >> T;
while(T --){
int t,d;
scanf("%d %d", &t,&d);
double ans = 1;
if(t%2){ t = 0 ; ans = 0;}
while(t){
ans *= 1.0*(t-1)/(t+1);
t -= 2;
}
printf("Case %d: %.9f\n",kas ++,ans);
}
return 0;
}