hdu1203(I NEED A OFFER!)

来源:互联网 发布:电脑视频剪辑软件排行 编辑:程序博客网 时间:2024/06/08 01:17
//这个事裸背包的题目,虽然很简单  我还是要贴出来的,这个题目做的时候要换个角度,先求出不能获得OFFER最大的概率,这样就会简单很多
#include <stdio.h>#include <string.h>#include <stdlib.h>#include <math.h>struct node {double p;int val;}f[10005];double  min(double a,double b){   if(a>b)   return b;   else   return a;}int main(){int n,m,i,j;double d[10005];while(scanf("%d%d",&n,&m)!=EOF){if(n==0&&m==0)break;            for(i=0;i<m;i++){scanf("%d%lf",&f[i].val,&f[i].p);f[i].p=1-f[i].p;}for(i=0;i<=n;i++)d[i]=1;for(i=0;i<m;i++){for(j=n;j>=0;j--){if(f[i].val<=j)d[j]=min(d[j],d[j-f[i].val]*f[i].p);}}printf("%.1lf",(1-d[n])*100);            printf("%%\n");}return 0;}

0 0
原创粉丝点击