关注
来个java版的 全ac的背包
public static void main(String[] args) {
Scanner sc = new Scanner(System.in); int money = sc.nextInt(); List<Integer> list = new ArrayList<>(); while (sc.hasNext()) {
list.add(sc.nextInt()); } int[] cost = new int[list.size() / 2]; int[] earn = new int[list.size() / 2]; int[] chosen = new int[list.size() / 2]; for (int i = 0; i < list.size(); ++i) { if (i < list.size() / 2) {
cost[i] = list.get(i); chosen[i] = 0; } else {
earn[i - list.size() / 2] = list.get(i); }
} // d[i][j]表示前i个物品放入容量为j的背包的最大价值 // d[i][j] = max(d[i-1][j], d[i-1][j-weights[i]] + values[i]) int[][] d = new int[cost.length][money + 1]; for (int i = 0; i < d.length; ++i) { for (int j = 1; j < money + 1; ++j) { if (i == 0) { if (cost[i] <= j) {
d[i][j] = cost[i]; }
} else { if (j >= cost[i]) {
d[i][j] = Math.max(d[i - 1][j], d[i - 1][j - cost[i]] + earn[i]); } else {
d[i][j] = d[i - 1][j]; }
}
}
} int ii = cost.length - 1, jj = money; while (ii >= 0) { if (ii > 0) { if (jj-cost[ii] >= 0 && d[ii][jj] == d[ii - 1][jj - cost[ii]] + earn[ii]) {
chosen[ii] = 1; jj -= cost[ii]; }
} else { if (cost[ii] <= jj) {
chosen[ii] = 1; }
}
ii--; } boolean first = true; for (int i = 0; i < chosen.length; ++i) { if (chosen[i] == 1) { if (first) {
System.out.print(i + 1); first = false; } else {
System.out.print(" " + (i + 1)); }
}
}
}
查看原帖
点赞 评论
相关推荐
查看4道真题和解析 点赞 评论 收藏
分享
找工小学弟:一看内容正想说博主幸运,点进主页一看:双9+阿里云实习+acm银,只能说还是实力太强了
查看20道真题和解析 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 如果秋招能重来,我会____ #
6767次浏览 68人参与
# 苦尽甘来时,再讲来时路 #
6510次浏览 127人参与
# 快手技术岗信息交流阵地 #
11703次浏览 73人参与
# 如果上班像打游戏,你最想解锁什么技能 #
1664次浏览 30人参与
# 机械求职避坑tips #
70663次浏览 484人参与
# 为了实习逃课值吗? #
9449次浏览 88人参与
# “vivo”个offer #
14818次浏览 130人参与
# 校招生月薪1W算什么水平 #
1669次浏览 18人参与
# 一份好的简历长什么样? #
4767次浏览 129人参与
# 选择和努力,哪个更重要? #
132214次浏览 1008人参与
# 秋招许愿,本周能____ #
11372次浏览 78人参与
# 投递无反馈,如何优化求职策略? #
1748次浏览 26人参与
# 材料专业可以靠半导体脱坑吗? #
26360次浏览 138人参与
# 应届生第一份工资要多少合适 #
2759次浏览 32人参与
# 班味很重的人是啥样的? #
2956次浏览 29人参与
# 机械制造秋招总结 #
81783次浏览 816人参与
# 大学最后一个寒假,我想…… #
59388次浏览 645人参与
# 新凯来求职进展汇总 #
57409次浏览 150人参与
# 选完offer后,你后悔学机械吗? #
42429次浏览 247人参与
# 华为海思工作体验 #
33325次浏览 139人参与
# 职场新人体验 #
115887次浏览 806人参与
# 25届非技术实习投递记录 #
134321次浏览 995人参与
