标签:
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