AcWing 2. 01背包问题
2024-10-08 06:58:43
朴素
//朴素二维
#include <iostream>
#include <algorithm>
using namespace std;
const int N = ;
int n, m;
int v[N], w[N];
int f[N][N];
int main() {
cin >> n >> m;
for (int i = ; i <= n; i ++ )
cin >> v[i] >> w[i];
for(int i=; i<=n; i++)//装的个数
for(int j=; j<=m; j++) {//最大容量
//讲 f[i][j]分为f[i-1][j](去掉第i个)和 f[i-1][j-v[i]]+w[i](先去掉第i个,并减去他的质量,再加上)
f[i][j]=f[i-][j];//左边
//右边
//当j<v[i]时,情况不存在,就不用考虑
if(j>=v[i]) f[i][j]=max(f[i][j],f[i-][j-v[i]]+w[i]);
}
cout<<f[n][m]<<endl;
return ;
}
优化
//一维优化
#include <iostream>
#include <algorithm>
using namespace std;
const int N = ;
int n, m;
int v[N], w[N];
int f[N];
int main() {
cin >> m >> n;//m表示时间,n表示数量
for (int i = ; i <= n; i ++ ) cin >> v[i] >> w[i];
for (int i = ; i <= n; i ++ )
for (int j = m; j >= v[i]; j -- )
f[j] = max(f[j], f[j - v[i]] + w[i]);
cout << f[m];
return ;
}
最新文章
- angular的跨域(angular百度下拉提示模拟)和angular选项卡
- Map与Tuple
- Unity3d 枚举某个目录下所有资源
- win7下安装mysql
- PHP通过反射方法调用执行类中的私有方法
- window_x64微信小程序环境搭建
- C#命名空间“Microsoft.Office”中不存在类型或命名空间名称的终极解决方法
- Mysql事物与Metadata lock 问题
- tcpdump命令
- Cocos2d html5 笔记 1: overview
- QTP 中对象操作
- PAT-乙级-1006. 换个格式输出整数 (15)
- 经典SQL语句大全_主外键_约束
- Java 设计模式实现 不错的引用
- java-信息安全(五)-非对称加密算法RSA
- pytorch 移动端框架 thnets 附c示例代码
- linux视频录制,推流处理
- iOS开发基础-九宫格坐标(2)之模型
- Windows Essentials Movie Maker 安装失败报错 ——问题解决
- 汇编语言--微机CPU的指令系统(五)(位操作指令)