蒟蒻求助。。。
查看原帖
蒟蒻求助。。。
109009
封禁用户楼主2020/7/31 16:01

rt,有没有那位dalao帮我康康我到底哪错了。。。

//标程:
#include<bits/stdc++.h>
using namespace std;
double k,p;
int q;
double dp[1024][10010];
int main(){
	cin>>k>>q;
	dp[0][0]=1;
	for(int i(1);i<=k;++i)
		for(int j(1);j<=10005;++j)
			dp[i][j]=dp[i][j-1]*(double)i/k+dp[i-1][j-1]*(k-(double)i+1)/k;
	while(q--){
		cin>>p;
		int x(1);
		while(dp[(int)k][x]<p/2000) x++;
		cout<<x<<'\n';
	}
	return 0;
} 

//我的代码:

#include<bits/stdc++.h>
using namespace std;
const int MAXN=1000+20,MAXM=MAXN*20;
double dp[MAXN][MAXM];
int k,p,q;
int main() {
	scanf("%d%d",&k,&q);
	dp[0][0]=1.0;
	for(int i(1); i<=k; ++i)
		for(int j(1); j<=MAXM; ++j)
			dp[i][j]=dp[i][j-1]*(double)i/(double)k+dp[i-1][j-1]*((double)k-(double)i+1)/(double)k;
	while(q--) {
		scanf("%d",&p);
		int tmp(1);
		double t((p*1.0)/2000);
		while(dp[k][tmp]<t) ++tmp;
		printf("%d\n",tmp);
//		cout<<dp[p][k]<<'\n';
	}
	return 0;
}

我寻思着这不就是把double改int吗,其他的一些涉及到换算的我也处理了啊。。。就是不过。。。(WA on answer 7)

2020/7/31 16:01
加载中...