标签:
10 3 4 0.1 4 0.2 5 0.3 0 0
44.0%HintYou should use printf("%%") to print a ‘%‘.
#include<stdio.h> #include<string.h> #include<algorithm> using namespace std; double sum[10010]; int cost[10010]; double prob[10010]; int main() { int n,m; int i,j; double p; while(scanf("%d%d",&n,&m),n|m) { for(i=0;i<=n;i++)//sum数组初始化为1; { sum[i]=1; } for(i=0;i<m;i++) { scanf("%d%lf",&cost[i],&p); prob[i]=1-p;//落选概率; } for(i=0;i<m;i++) { for(j=n;j>=cost[i];j--) { sum[j]=min(sum[j],sum[j-cost[i]]*prob[i]); //最小的落选概率; } } printf("%.1lf%%\n",(1-sum[n])*100); } return 0; }
版权声明:本文为博主原创文章,未经博主允许不得转载。
hdoj 1203 I NEED A OFFER! 【01背包】
标签:
原文地址:http://blog.csdn.net/longge33445/article/details/48009685