解题思路:
多重背包问题,把美味度看做重量,把价值换做数量。
注意事项:
老板点个赞!
参考代码:
#include <bits/stdc++.h> using namespace std; int dp[20005]; const int INF = 0x3fffff; int main(){ int m,n; cin>>m>>n; fill(dp,dp+m+1,INF); dp[0]=0; for(int i=0;i<n;i++){ int v,num; cin>>v>>num; for(int j=0;j<num;j++){ for(int k=m;k>=v;k--){ if(dp[k-v]!=INF) dp[k]=min(dp[k],dp[k-v]+1); } } } if(dp[m]!=INF) cout<<dp[m]; else cout<<">"<<"<"; }
0.0分
3 人评分
宏定义浏览:837 |
The 3n + 1 problem (C语言代码)浏览:718 |
C二级辅导-计负均正 (C语言代码)浏览:1199 |
C语言程序设计教程(第三版)课后习题8.7 (C语言代码)浏览:906 |
点我有惊喜!你懂得!浏览:2214 |
C语言程序设计教程(第三版)课后习题7.4 (C语言代码)浏览:560 |
2003年秋浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:672 |
简单的a+b (C语言代码)浏览:599 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:513 |
C语言程序设计教程(第三版)课后习题8.8 (C语言代码)浏览:639 |