解题思路:
多重背包问题,把美味度看做重量,把价值换做数量。
注意事项:
老板点个赞!
参考代码:
#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 人评分
P1001 (C++代码)浏览:773 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:632 |
C语言程序设计教程(第三版)课后习题8.9 (C语言代码)浏览:561 |
C语言程序设计教程(第三版)课后习题6.2 (C语言代码)浏览:1419 |
C语言程序设计教程(第三版)课后习题7.3 (C语言代码)浏览:1195 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:470 |
用筛法求之N内的素数。 (C语言代码)浏览:802 |
C语言程序设计教程(第三版)课后习题8.5 (C语言代码)浏览:567 |
C语言程序设计教程(第三版)课后习题8.7 (C语言代码)浏览:915 |
字符逆序 (C语言代码)浏览:609 |