关注
#include <cstdio> #include <iostream> #include <vector> #include <queue> #include <map> #include <numeric> using namespace std; typedef unsigned int ll; int main() { int N; while (cin >> N) { vector<int> x(N), y(N); for (int i = 0; i < N; ++i) cin >> x[i] >> y[i]; int sumx = accumulate(x.begin(), x.end(), 0); int sumy = accumulate(y.begin(), y.end(), 0); // cout << sumx << endl; int INF = -sumy * 4; vector<vector<int>> f(2, vector<int>(2 * sumx + 1, INF)); int pre = 0, cur = 1; f[cur][sumx] = 0; for (int i = 0; i < x.size(); ++i) { swap(pre, cur); for (int j = 0; j < f[cur].size(); ++j) f[cur][j] = f[pre][j]; for (int j = 0; j < f[0].size(); ++j) { if (j - x[i] >= 0) f[cur][j - x[i]] = max(f[cur][j - x[i]], f[pre][j] + y[i]); if (j + x[i] < f[0].size()) f[cur][j + x[i]] = max(f[cur][j + x[i]], f[pre][j] + y[i]); } } cout << f[cur][sumx] << endl; } } 第三题题解。 思路:动态规划,f[i][j]表示 考虑前i张卡片,a与b的个人得分之差为j时能得到的最大团体分。
查看原帖
点赞 4
相关推荐
04-23 18:58
门头沟学院 电子信息类 点赞 评论 收藏
转发
点赞 评论 收藏
转发
04-03 23:15
中国石油大学(华东) 计算机类 点赞 评论 收藏
转发
牛客热帖
正在热议
# 牛客帮帮团来啦!有问必答 #
365094次浏览 7431人参与
# 晒一晒我的offer #
2779523次浏览 49587人参与
# 在国企工作的人,躺平了吗? #
70309次浏览 853人参与
# 非技术岗薪资爆料 #
5799次浏览 126人参与
# 华为求职进展汇总 #
435552次浏览 4374人参与
# 第一次面试 #
14493次浏览 229人参与
# 你更愿意参加线上面试还是线下面试? #
5620次浏览 85人参与
# 简历中的项目经历要怎么写 #
375883次浏览 6327人参与
# 应届生应该先就业还是先择业 #
11317次浏览 111人参与
# 租房前辈的忠告 #
20038次浏览 1589人参与
# 除了offer,现在你还缺点啥? #
2312次浏览 48人参与
# 机械人怎么评价今年的华为 #
50897次浏览 415人参与
# 谈薪时HR压价该怎么应对 #
32500次浏览 201人参与
# 找工作,你会甘心进小厂还是猛冲大厂 #
22392次浏览 214人参与
# 来聊聊机械薪资天花板是哪家 #
19386次浏览 157人参与
# 通信硬件薪资爆料 #
140253次浏览 1022人参与
# 如何确定求职岗位 #
101533次浏览 2406人参与
# 百度工作体验 #
19095次浏览 208人参与
# 应届生初入职场,求建议 #
21358次浏览 528人参与
# 海信求职进展汇总 #
6848次浏览 91人参与