Gesp 2025 5级 T1

可以看这个: GESP-2025.03 题解(咕咕中)


言归正传:

平均分配

题面:
image

个人认为是一个大型的贪心:因为可以考虑卖给小B或者小C,以最大化最大值。




解析

对于第每个物体,可以进行差值的排序,也就是对于 a [ i ].b - a [ i ].c 进行排序,排序后前 n 项就是代表选择小B,后 n 项就是代表选择小C。

注意

image

要开 long long 考场上,因为它就浪费了30min :loudly_crying_face: :loudly_crying_face: :loudly_crying_face: :loudly_crying_face: :loudly_crying_face:

代码:

#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;
}

点了赞再走呗!!

下次再见

拜拜

嘻嘻

收到点赞后的冰块萌兔 :star_struck:

没收点赞后的冰块萌兔 :loudly_crying_face:

1 个赞

这不是五级吗

谢谢

卡错了

大佬讲一下T2

你们知道吗,我在调排序时看数据范围顺带写了个高精度

你们知道吗,我连这个的思路都是假的,我当时还没发现,考前5min hack的,改不出来了……