UVA 11427 Expect the Expected

白書上的題目,我自己TLE了一發,對照代碼時發現竟然是數組開大了,而且每次初始化都是用memset,,,怪不得會TLE,以後不會亂開大數組了。。。

#include<cstdio>
#include<cstring>
#include<cmath>
#include<iostream>
#include<algorithm>
#define eps 0.000001
using namespace std;
int i,j,k,n,m,x,y,T,big,cas,pm,pz;
double ans,d[105][105],p;
bool flag;
int main()
{
	scanf("%d",&T);
	for (cas=1;cas<=T;cas++)
	{
		scanf("%d/%d %d",&pz,&pm,&n);
		memset(d,0,sizeof(d));
		d[0][0]=1;
		p=(double)pz/pm;
		for (i=1;i<=n;i++)
		{
			d[i][0]=d[i-1][0]*(1-p);
			for (j=1;j*pm<=i*pz;j++)
			{
				d[i][j]=d[i-1][j]*(1-p)+d[i-1][j-1]*p; 
			}
		}
		ans=0;
		for (i=0;i*pm<=n*pz;i++)
		{
			ans+=d[n][i];
		}
		printf("Case #%d: %d\n",cas,(int)(1/ans));
	}
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章