题意:在孤岛生存, 孤岛上有t头老虎,d头鹿,每天会出现随机出现两只生物(包括你自己),如果出现了一只老虎,那么你将被吃掉, 如果两只老虎, 则两只老虎会同归于尽,其他情况你都将生存下来。当孤岛上没有老虎时, 就视为你生存成功。问生存成功的最大概率
如果t只老虎是一个奇数, 那么必然存活失败
如果是偶数,两只老虎遇见的情况数:t * (t - 1)
概率P = t * (t - 1) / (t * (t + 1)) = (t - 1) / (t + 1)
#include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>
#include <vector>
#define rep(i, j, k) for(int i = j; i <= k; i++)
#define maxn 100009
using namespace std;
int tiger, deer;
int main()
{
int t, ca = 0;
cin >> t;
while(t--)
{
scanf("%d%d",&tiger,&deer);
printf("Case %d: ",++ca);
double ans=1;
if(tiger&1)
printf("0.00000000\n");
else
{
while(tiger>0)
ans *= (tiger - 1) * 1.0 / (tiger + 1) * 1.0, tiger-=2;
printf("%.7lf\n",ans);
}
}
return 0;
}