HDU ACM 1203 I NEED A OFFER!

分析:最大录取概率=1-最小不录取概率。

0-1背包求出最小不录取概率,然后用1减去即可。

注意dp数组初始化时概率要先设置为1,表示一开始被录取。

#include<iostream>using namespace std;double p[10001],dp[10001];int v[10001];int main(){int n,m,i,j;while(cin>>n>>m &&(n||m)){for(i=0;i<m;i++){cin>>v[i]>>p[i]; //p[i]为录取的概率p[i]=1-p[i];//1-p[i]为不被录取的概率}for(i=0;i<=n;i++)dp[i]=1.0f;//开始初始化为1.0f,,表示被录取for(i=0;i<m;i++)for(j=n;j>=v[i];j–)if(dp[j]>dp[j-v[i]]*p[i])dp[j]=dp[j-v[i]]*p[i];printf("%.1lf%%\n",(1.0f-dp[n])*100);}return 0;}

人生没有彩排,每一天都是现场直播

HDU ACM 1203 I NEED A OFFER!

相关文章:

你感兴趣的文章:

标签云: