P10504 20pts求助
  • 板块灌水区
  • 楼主lfxxx_
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/10/4 21:35
  • 上次更新2024/10/5 08:42:07
查看原帖
P10504 20pts求助
795344
lfxxx_楼主2024/10/4 21:35
#include<bits/stdc++.h>
using namespace std;
const int N=205;
int n,l,k;
double dp[N][N<<1][N],p[N];
bool vis[N][N<<1][N];
int a[N];
double dfs(int u,int K,int c)
{
	if(u==n)
	{
		if(K>=200&&c>=l)
			return 1;
		return 0;
	}
	if(vis[u][K][c])
		return dp[u][K][c];
	vis[u][K][c]=1;
	return dp[u][K][c]=p[u+1]*dfs(u+1,min(K+a[u],400),c+1)+(1-p[u+1])*dfs(u+1,K,c);
}
signed main()
{
	cin>>n>>l>>k;
	for(int i=1;i<=n;++i)
		cin>>p[i],p[i]/=100;
	for(int i=1;i<=n;++i)
		cin>>a[i];
	cout<<fixed<<setprecision(6)<<dfs(0,k+200,0);
}
2024/10/4 21:35
加载中...