题意:最多能买多少东西。完全背包。
连接:http://acm.hdu.edu.cn/search.php?action=listproblem
View Code
#include <iostream> using namespace std; const int MAX=10000+10; int w[5]; int dp[MAX]; int cmp(int a,int b) { return a>b?a:b; } int main() { int n,m; w[1]=150,w[2]=200,w[3]=350; while(~scanf("%d",&m)) { while(m--) { scanf("%d",&n); memset(dp,0,sizeof(dp)); for(int i=1;i<=3;i++) { for(int j=w[i];j<=n;j++) { dp[j]=cmp(dp[j],dp[j-w[i]]+w[i]);//找最大能买多好物品 } } printf("%d\n",n-dp[n]); } } return 0; }