1 条题解
-
0
自动搬运
来自洛谷,原作者为

CSP_S_2023_T2
时代的灰尘落在个人头上,就是一座山,但总有人愿意成为移山的愚公搬运于
2025-08-24 23:11:40,当前版本为作者最后更新于2025-03-24 08:35:49,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
思路
首先,我们假设所有物品全部卖给小 B,则收入为 。
而第 件物品从卖给小 B 变成卖给小 C 对收入的贡献为 。
所以我们只需对 进行排序,选出前 个最大的,求和并加上全部卖给小 B 的收入即可。
代码
#include<bits/stdc++.h> using namespace std; long long n,b[200005],c,a[200005],ans; int main(){ ios::sync_with_stdio(0); cin.tie(0);cout.tie(0); cin>>n; for(int i=0;i<n*2;i++) cin>>b[i],ans+=b[i]; //全部卖给小 B 的收入 for(int i=0;i<n*2;i++) cin>>c,a[i]=c-b[i]; //记录第 i 件物品对答案的贡献 sort(a,a+n*2,greater<long long>()); //从大到小排序 for(int i=0;i<n;i++) ans+=a[i]; //更新答案 cout<<ans; return 0; //完结撒花 }
- 1
信息
- ID
- 11775
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 3
- 标签
- 递交数
- 6
- 已通过
- 0
- 上传者