关注
笔试时写的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
相关推荐
牛客热帖
更多
正在热议
更多
# 假如你的老板掉河里,你的工作能为他做什么 #
30847次浏览 376人参与
# 学历贬值真的很严重吗? #
25572次浏览 178人参与
# 你觉得早上几点上班合适? #
73140次浏览 307人参与
# 听劝,这个公司值得去吗 #
487127次浏览 1709人参与
# 第一份工作应该选高薪还是热爱? #
68644次浏览 648人参与
# 秋招签约后的心态变化 #
83367次浏览 819人参与
# 双非能在秋招上岸吗? #
222686次浏览 1178人参与
# 推荐一首陪你工作的歌吧 #
14914次浏览 99人参与
# 打工人的工作餐日常 #
54254次浏览 426人参与
# 月薪多少能在一线城市生存 #
33362次浏览 340人参与
# 大学最后一个寒假,我想…… #
47086次浏览 576人参与
# 26届的你们有几段实习? #
48062次浏览 522人参与
# 外包能不能当跳板? #
37461次浏览 227人参与
# 你上一次加班是什么时候? #
89402次浏览 574人参与
# 你以为的实习VS真实的实习 #
33559次浏览 300人参与
# 2023毕业生求职有问必答 #
181662次浏览 1626人参与
# 哪些公司真双非友好? #
16359次浏览 82人参与
# 不考虑薪资和职业,你最想做什么工作呢? #
92785次浏览 684人参与
# 追觅科技求职进展汇总 #
18728次浏览 120人参与
# 当下环境,你会继续卷互联网,还是看其他行业机会 #
118509次浏览 814人参与