关注
根本就不需要排序。直接就是0-1背包问题啊。而且我一直不明白为什么你们总是一开始就开辟那么大的数组空间?为什么都不用vector? #include <iostream>
#include <vector>
#include <cassert>
#include <algorithm>
using namespace std;
// 需要填充一个容量为X的背包,使得成就点数最大
class Knapsack01 {
private:
vector<vector<int>> memo;
// 用 [0...index]的物品,填充容积为c的背包的最大价值
int bestValue(const vector<int> &w, const vector<int> &v, int index, int c) {
if (c <= 0 || index < 0)
return 0;
if (memo[index][c] != -1)
return memo[index][c];
int res = bestValue(w, v, index - 1, c);
if (c >= w[index])
res = max(res, v[index] + bestValue(w, v, index - 1, c - w[index]));
memo[index][c] = res;
return res;
}
public:
int knapsack01(const vector<int> &w, const vector<int> &v, int C) {
assert(w.size() == v.size() && C >= 0);
int n = w.size();
if (n == 0 || C == 0)
return 0;
memo.clear();
for (int i = 0; i < n; i++)
memo.push_back(vector<int>(C + 1, -1));
return bestValue(w, v, n - 1, C);
}
};
int main() {
// X为暑假天数,N为游戏数量
int X, N;
cin >> X >> N;
int w, v;
// vs存的是价值(成就点数)
// ws存的是每一件物品的重量(天数)
vector<int> vs, ws;
for (int i = 0; i < N; i++) {
cin >> w >> v;
vs.push_back(v);
ws.push_back(w);
}
cout << Knapsack01().knapsack01(ws, vs, X) << endl;
return 0;
}
1
相关推荐

点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
- 1... HR面,到底该准备些啥(附核心问题回答思路)1.8W
- 2... 除了卷大厂,还有其他出路吗。。。4560
- 3... 懂车帝二面 2025.10.11 1h32min4490
- 4... 牛牛求救🆘,不敢梭哈后端第二技能点怎么搭配3447
- 5... 双非秋招timeline供参考(腾讯字节阿里快手美团)3207
- 6... 27届速通第一段前端实习后续--节孝子启动!3049
- 7... 小红书一面面经2889
- 8... 10.12pdd笔试大鸭蛋2434
- 9... 双非放弃保研,后悔之总结篇2399
- 10... 第一次去北京那么远的地方实习,心里总是不安,大家会有这种感觉吗?2288
正在热议
更多
# 面包vs爱情,怎么选? #
10516次浏览 108人参与
# 机械求职避坑tips #
66710次浏览 448人参与
# 深信服秋招来了 #
279901次浏览 2917人参与
# 找工作中的小确幸 #
399次浏览 6人参与
# 秋招踩过的“雷”,希望你别再踩 #
4528次浏览 33人参与
# 你觉得什么岗位会被AI替代 #
1516次浏览 34人参与
# 爱玛科技集团求职进展汇总 #
27821次浏览 200人参与
# 招银网络求职进展汇总 #
169331次浏览 994人参与
# 新凯来求职进展汇总 #
50191次浏览 130人参与
# 面试被问“你的缺点是什么?”怎么答 #
155178次浏览 2176人参与
# 硬件/芯片公司岗位评价 #
8456次浏览 28人参与
# 华为海思工作体验 #
29180次浏览 120人参与
# tplink提前批进度交流 #
207263次浏览 1507人参与
# 安克创新求职进展汇总 #
54095次浏览 530人参与
# 材料进Fab厂真的劝退吗? #
56209次浏览 204人参与
# Tplink求职进展汇总 #
180608次浏览 913人参与
# 26届秋招投递记录 #
50195次浏览 504人参与
# 第一份工作应该选择高薪还是大平台 #
162245次浏览 915人参与
# Offer比较,你最看重什么? #
215512次浏览 1391人参与
# 秋招结束之后的日子 #
86620次浏览 979人参与
# 应届生,你找到工作了吗 #
69199次浏览 461人参与
# 职场新人体验 #
84876次浏览 601人参与