类型题,01背包问题。
附一个自认为讲的很好的视频
https://www.bilibili.com/video/BV1kp4y1e794
参考代码:
#include<iostream> #include<cstdio> #include<algorithm> #include<string> #include<cmath> #include<vector> #include<set> #include<sstream> #include<cstring> #include<utility> using namespace std; typedef long long ll; typedef long l; const int N = 110; int a[N][3],f[1100]; int main(){ int t,m; scanf("%d%d",&t,&m); for(int i=1;i<=m;i++)scanf("%d%d",&a[i][1],&a[i][2]); for(int i=1;i<=m;i++){ for(int j=t;j>=a[i][1];j--){ f[j]=max(f[j],f[j-a[i][1]]+a[i][2]); } } cout<<f[t]; }
0.0分
0 人评分
点我有惊喜!你懂得!浏览:1437 |
C语言训练-邮票组合问题* (C语言代码)......浏览:689 |
C二级辅导-公约公倍 (C语言代码)浏览:2158 |
C二级辅导-同因查找 (C语言代码)浏览:705 |
汽水瓶 (C语言代码)浏览:664 |
C二级辅导-同因查找 (C语言代码)浏览:625 |
【亲和数】 (C语言代码)浏览:588 |
C语言程序设计教程(第三版)课后习题6.10 (C语言代码)浏览:827 |
C语言训练-计算t=1+1/2+1/3+...+1/n (C语言代码)浏览:942 |
简单的a+b (C语言代码)浏览:661 |