解题思路:
多重背包问题,把美味度看做重量,把价值换做数量。
注意事项:
老板点个赞!
参考代码:
#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 人评分
【蟠桃记】 (C语言代码)浏览:710 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:723 |
C语言程序设计教程(第三版)课后习题6.1 (C语言代码)浏览:582 |
数对 (C语言代码)浏览:762 |
核桃的数量 (C语言代码)浏览:726 |
C语言训练-亲密数 (C语言描述,反正怎么都能对)浏览:2256 |
C二级辅导-等差数列 (C语言代码)浏览:806 |
图形输出 (C语言代码)浏览:1019 |
C语言程序设计教程(第三版)课后习题7.5 (C语言代码)浏览:712 |
拆分位数 (C语言代码)浏览:558 |