关注
笔试时写的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
相关推荐
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 月薪多少能在一线城市生存 #
79126次浏览 531人参与
# 你会为了工作牺牲生活吗? #
60953次浏览 424人参与
# 百度秋招 #
38293次浏览 334人参与
# 如果再来一次,你还会选择这个工作吗? #
705166次浏览 5730人参与
# 秋招吐槽大会 #
7840次浏览 87人参与
# offer帮选 #
4349261次浏览 26372人参与
# 技术转行的心路历程 #
73097次浏览 745人参与
# 你找工作想离家近 or 离家远? #
1651次浏览 32人参与
# 总结:哪家公司最喜欢泡池子 #
151510次浏览 543人参与
# 小米编程考试 #
23322次浏览 145人参与
# 你小时候最想从事什么职业 #
134713次浏览 1991人参与
# 互联网行业现在还值得去吗 #
38437次浏览 282人参与
# 虾皮开奖 #
45645次浏览 213人参与
# 滴滴歧视残疾人HR被开除 #
23930次浏览 86人参与
# 京东工作体验 #
19470次浏览 113人参与
# 26届的你们有几段实习? #
153327次浏览 1068人参与
# 25届非技术实习投递记录 #
137434次浏览 1001人参与
# 落户对你的求职选择影响有多大 #
30180次浏览 101人参与
# 机械人,秋招第一次笔试的企业是哪家? #
79871次浏览 611人参与
# 你认为工作的意义是什么 #
211147次浏览 1354人参与
# 大疆求职进展汇总 #
631528次浏览 4262人参与
