类型题,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 人评分
C语言程序设计教程(第三版)课后习题10.5 (C语言代码)浏览:1456 |
P1001 (C语言代码)浏览:808 |
C语言程序设计教程(第三版)课后习题11.8 (C语言代码)浏览:891 |
【蟠桃记】 (C语言代码)浏览:1043 |
C语言程序设计教程(第三版)课后习题8.4 (C语言代码)浏览:530 |
C语言程序设计教程(第三版)课后习题5.5 (C语言代码)浏览:559 |
模拟计算器 (C++代码)浏览:820 |
DNA (C语言代码)浏览:397 |
数组与指针的问题浏览:732 |
C二级辅导-统计字符 (C语言代码)浏览:485 |