关注
笔试时写的O(n2),过70%,笔试后想到的O(nlongn),(这里假设冲突对不会重复)
#include<iostream>
(5488)#include<algorithm>
#include<vector>
using namespace std;
int main() {
int n, m;
cin >> n >> m;
vector<int> a(n), b(n);
vector<int> del(n);
int sup = 0;
for (int i = 0; i < n; ++i) {
cin >> a[i] >> b[i];
sup += b[i];
del[i] = b[i] - a[i];
}
vector<int> ans(n, sup);
for (int i = 0; i < n; ++i)
ans[i] += n * b[i];
sort(del.begin(), del.end());
vector<int> sum(n + 1, 0);
for (int i = 0; i < n; ++i)
sum[i + 1] = sum[i] + del[i];
for (int i = 0; i < n; ++i) {
int curDel = b[i] - a[i];
int idx = upper_bound(del.begin(), del.end(), curDel)- del.begin();
ans[i] -= sum[n] - sum[idx];
ans[i] -= idx * curDel;
ans[i] -= b[i] + a[i];
}
for (int i = 0; i < m; ++i) {
int l, r;
cin >> l >> r;
--l; --r;
int curDel = min(a[l] + b[r], a[r] + b[l]);
ans[l] -= curDel;
ans[r] -= curDel;
}
for (int i = 0; i < n; ++i)
cout << ans[i] << " ";
return 0;
}
查看原帖
1 3
相关推荐
10-29 17:25
武汉大学 税务 点赞 评论 收藏
分享
牛客热帖
正在热议
# 华为求职进展汇总 #
2023736次浏览 15204人参与
# 如果能重来,就业or读研你选哪个? #
23252次浏览 196人参与
# 应届生应该先就业还是先择业 #
38857次浏览 238人参与
# 软开人,秋招你打算投哪些公司呢 #
29801次浏览 311人参与
# 你会选择考研还是直接就业 #
156647次浏览 1747人参与
# 学信网能看师兄师姐就业去向了 #
107488次浏览 300人参与
# 简历被挂麻了,求建议 #
2303673次浏览 31859人参与
# 不给转正的实习,你还去吗 #
1437696次浏览 16164人参与
# 反问环节如何提问 #
51309次浏览 1165人参与
# 实习,投递多份简历没人回复怎么办 #
2273409次浏览 33227人参与
# 如何看待offer收割机的行为 #
491674次浏览 4877人参与
# 机械人还在等华为开奖吗? #
24192次浏览 81人参与
# OPPO求职进展汇总 #
523840次浏览 4367人参与
# 2022届毕业生现状 #
588260次浏览 6383人参与
# 毕业后不工作的日子里我在做什么 #
112084次浏览 1069人参与
# 租房前辈的忠告 #
103400次浏览 5172人参与
# vivo求职进展汇总 #
144649次浏览 948人参与
# 双非本科求职如何逆袭 #
533438次浏览 6252人参与
# 你觉得实习只能是打杂吗? #
45951次浏览 417人参与
# 入职以后才知道的校招谎言 #
23245次浏览 161人参与