LightOJ 1104 Birthday Paradox

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;
}

 

上一篇:python中的类


下一篇:JQuery.Ajax()的data参数类型