纪中5日T2 1565. 神秘山庄
1565. 神秘山庄 (Standard IO)
Solution
首先我们要明确是无限的时间。你想活下来,只能要鬼鬼们自相残杀。
兔子
兔子就是来耗时间的,这与存活概率无关。
那么我们就无视M,只考虑N。
鬼
要是有奇数只鬼,
你再怎么挣扎,
最后一定回剩一只来打你
你必死无疑。
要是有偶数只鬼,
(emm……貌似不好直接算)
如果有两只鬼
以其中一只鬼鬼的视角:
要么遇到你,要么遇到另一只鬼鬼。
所以概率就是0.500000(1/2)
如果有n只鬼
把鬼鬼们和你并排放在一起,并且两两配对
由于有n+1个物体,所以总是会剩下一个物体
这个物体可能是你,也可能是我鬼。
剩下的是一号鬼鬼的概率是1/(n+1)
是三号鬼鬼的概率也是1/(n+1)
那么剩下你的概率也还是1/(n+1)
所以说
最终概率即为:
Code
1 #include<bits/stdc++.h> 2 using namespace std; 3 int n,m; 4 double gl=1.0;//别忘记初始化为1.0! 5 int main() 6 { 7 cin>>n>>m;//n是鬼 8 if(n%2==1) 9 gl=0.00000; 10 else 11 gl=1/((n+1)*1.0); 12 printf("%.6lf",gl); 13 return 0; 14 }
Summary
有些题目,看不出来是什么模型,只能先模拟的,不妨先想想数论吧!
不要因为电脑在面前,就不愿意动笔了!