HDU—1203 DP—01背包

来源:互联网 发布:mac del rio 编辑:程序博客网 时间:2024/05/16 16:04

题目很水直接上代码



#include <stdio.h>#include <iostream>using namespace std;#define max(a,b)  a>b?a:bint main(){int n,m;while(scanf("%d %d",&n,&m)!=EOF&&(n||m)){int w[10100];double g[10100];double dp[10100];for(int i=1;i<=m ; i++){scanf("%d %lf",&w[i],&g[i]);}for(int i=0;i<10100;i++) dp[i]=0;for(int i=1;i<=m;i++){for(int j=n;j>=w[i];j--){dp[j]=max(dp[j],dp[j-w[i]]+g[i]*(1-dp[j-w[i]]));}}dp[n]=dp[n]*100;printf("%.1f%%\n",dp[n]);}return 0;}



0 0
原创粉丝点击