http://lightoj.com/volume_showproblem.php?problem=1104
求一年为n天时,多少个人可以使得出现生日同一天的一对的概率>=0.5.
看T这么大,感觉也要预处理,然而头发都快挠没了都想不出。
结果题解告诉我由于题目告诉了我们人数很少,直接从2开始枚举即可。
卧佛了。。
#include<bits/stdc++.h>
#define eps 1e-8
using namespace std;
int n,ans,cas;
int jc;
inline void prework()
{
scanf("%d",&n);
}
inline void mainwork()
{
if(n==1)
{
ans=1;
return;
}
double tmp=1.0;
for(ans=1;ans<=n;ans++)
{
tmp*=1.0*(n-ans+1)/n;
if(tmp<0.5+eps)
{
ans-=1;
return;
}
}
}
inline void print()
{
++cas;
printf("Case %d: %d\n",cas,ans);
}
int main()
{
int t;
scanf("%d",&t);
for(int i=1;i<=t;i++)
{
prework();
mainwork();
print();
}
return 0;
}