题意:
生存冒险,老虎和老虎遇见双送双死。。
老虎和鹿碰到 鹿死
人和鹿碰上,鹿可以死。可以活
人和老虎碰上,人死
鹿鹿遇见无伤亡
询问人最后活下来的期望
思路:
在奇数个老虎的时候,必定会有一只老虎存活,人必死。 当有偶数只老虎时候只需要让这些老虎互相碰面,而人不与老虎碰面即可。
自己推的时候,公式推错了。。
无需考虑鹿。 只需要考虑人与老虎的关系,假设有n只老虎。且n为偶数,即人有可能在这种情况下活下来。
那么对于n只老虎的情况下,Cn 2 /C(n+1) 2表示 老虎与老虎遇见,逐次消减n直至为0
#include <iostream>
#include <stdio.h>
#include <cstring>
using namespace std;
const int maxn=10005;
int main()
{
int t;
scanf("%d",&t);;
for(int cs=1;cs<=t;cs++)
{
int n,m;
scanf("%d%d",&n,&m);
double ans=1;
printf("Case %d: ",cs);
if(n&1)
{
printf("0\n");
}
else
{
if(n==0)
ans=1;
while(n!=0)
{
ans*=(n-1)*1.0/(n+1);
n-=2;
}
printf("%.6lf\n", ans);
}
}
return 0;
}