可以看这个: GESP-2025.03 题解(咕咕中)
言归正传:
平均分配
题面:
个人认为是一个大型的贪心:因为可以考虑卖给小B或者小C,以最大化最大值。
解析
对于第每个物体,可以进行差值的排序,也就是对于 a [ i ].b - a [ i ].c 进行排序,排序后前 n 项就是代表选择小B,后 n 项就是代表选择小C。
注意
要开 long long 考场上,因为它就浪费了30min

代码:
#include<bits/stdc++.h>
using namespachae std;
const int MAXN = 2e5 + 10;
struct node
{
int a;
int b;
int cha;
} aa[MAXN];
bool cmp ( node x, node y )
{
return x.cha>y.cha;
}
int ans = 0;
int n;
int main()
{
ios::sync_with_stdio ( false );
cin.tie ( 0 );
cout.tie ( 0 );
cin >> n;
for ( int i = 1; i <= 2 * n; i++ )
{
cin >> aa [ i ].a;
}
for ( int i = 1; i <= 2 * n; i++ )
{
cin >> aa [ i ].b;
}
for ( int i = 1; i <= 2 * n; i++ )
{
aa [ i ].cha = aa [ i ].a - aa [ i ].b;
}
sort ( aa + 1, aa + 2 * n + 1, cmp );
for ( int i = 1; i <= n; i++ )
{
ans += aa [ i ].a;
}
for ( int i = n + 1; i <= 2 * n; i++ )
{
ans += aa [ i ].b;
}
cout << ans << "\n";
return 0;
}
点了赞再走呗!!
下次再见
拜拜
嘻嘻
收到点赞后的冰块萌兔
没收点赞后的冰块萌兔