首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

hdu 1203 I NEED A OFFER

2012-09-07 
hdu 1203I NEED A OFFER!dp[j]表示用j万元,不能得到一个offer的最小概率。。动态转移方程:dp[j] min(dp[j],

hdu 1203 I NEED A OFFER!
dp[j]表示用j万元,不能得到一个offer的最小概率。。动态转移方程:dp[j] =min(dp[j],dp[j-a[i]]*b[i]) 

#include"stdio.h"int a[10010];double b[10010],dp[10010];double min(double x,double y){return x<y?x:y;}int main(){int n,m,i,j;while(scanf("%d%d",&n,&m)!=EOF){if(n==0&&m==0)break;for(i=1;i<=m;i++)scanf("%d%lf",&a[i],&b[i]);for(i=1;i<=m;i++)b[i]=1-b[i];//注意原来的b是能成功的概率,这里要变一下。。for(i=0;i<=n;i++)dp[i]=1;for(i=1;i<=m;i++){for(j=n;j>=a[i];j--){dp[j]=min(dp[j],dp[j-a[i]]*b[i]);}}printf("%.1f%%\n",(1-dp[n])*100);}return 0;}



热点排行