标签:
Description
Input
Output
Sample Input
Sample Output
dp[ j] 表示在抢劫到钱j时不被抓概率。最后,只要找出满足要求的最大j。
代码及案例显示
#include<iostream> #include<cstdio> #include<cstring> using namespace std; int T,n,total; double p; double a[110],dp[10100]; int b[110]; int main() { cin>>T; while(T--) { total=0; cin>>p>>n; for(int i=0; i<n; i++) { cin>>b[i]>>a[i]; total+=b[i]; } memset(dp,0,sizeof(dp)); dp[0]=1; //没抢到钱时,逃脱的概率为1 for(int i=0; i<n; i++) for(int j=total; j>=a[i]; j--) { dp[j]=max(dp[j],dp[j-b[i]]*(1-a[i]));
//cout<<d[j]<<" "<<j<<endl; } for(int i=total; i>=0; i--) { if(dp[i]>1-p) { cout<<i<<endl; break; } } } return 0; }
下面是第一组案例的各种抢劫钱数的概率
标签:
原文地址:http://www.cnblogs.com/hfc-xx/p/4727800.html