hdu 2159 01背包

来源:互联网 发布:快乐秒赞去授权源码 编辑:程序博客网 时间:2024/05/18 00:47

背景:01背包,开始尽然忘了01背包的内循环是倒着来的=_=

我的代码:

#include<cstdio>#include<iostream>#include<cstring>using namespace std;int c[10009];double w[10009],F[10009];int main(void){    int n,m;    while(scanf("%d%d",&n,&m) && n*n+m*m){        for(int i=0;i < m;i++) scanf("%d%lf",&c[i],&w[i]);        for(int i=0;i <= n;i++) F[i]=1.0;        for(int i=0;i < m;i++){            for(int j=n;j >= c[i];j--){                F[j]=min(F[j],F[j-c[i]]*(1-w[i]));            }        }        printf("%.1lf%%\n",(1-F[n])*100);    }    return 0;}


1 0
原创粉丝点击