记录编号 533013 评测结果 AAAAAAAAAA
题目名称 [Nescafé 17] 守卫者的挑战 最终得分 100
用户昵称 GravatarHale 是否通过 通过
代码语言 C++ 运行时间 0.224 s
提交时间 2019-06-11 19:46:32 内存使用 5.96 MiB
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
const int N=201;
double f[2][N][N<<1],p[N];
int a[N],n,L,k;
inline int Hale()
{
	freopen("guarda.in","r",stdin);
	freopen("guarda.out","w",stdout);
	scanf("%d%d%d",&n,&L,&k);
	for (int i=1;i<=n;i++) scanf("%lf",&p[i]),p[i]/=100.0;
	for (int i=1;i<=n;i++) scanf("%d",&a[i]);
	if (k>n) k=n;
	f[0][0][k+200]=1;
	int now=0;
	for (int i=0;i<n;i++)
	{
		now^=1;
		for (int j=0;j<=n;j++)
		 for (int k=-i;k<=n;k++) f[now][j][k+200]=0;
		for (int j=0;j<=i;j++)
			for (int k=-i;k<=n;k++)
		{
			f[now][j+1][min(n,k+a[i+1])+200]+=f[now^1][j][k+200]*p[i+1];
			f[now][j][k+200]+=(1.0-p[i+1])*f[now^1][j][k+200];
		}
	}	
	double ans=0;
	for (int j=L;j<=n;j++)
		for (int k=0;k<=n;k++)
	ans+=f[now][j][k+200];
	printf("%.6lf\n",ans);
	return 0;
}
int gg=Hale();
int main()
{;}