ABC416D,双指针求 hack
  • 板块学术版
  • 楼主I_am_kunzi
  • 当前回复9
  • 已保存回复9
  • 发布时间2025/7/26 21:48
  • 上次更新2025/7/27 13:27:47
查看原帖
ABC416D,双指针求 hack
765452
I_am_kunzi楼主2025/7/26 21:48

如题。核心代码:

long long a[300005] , b[300005];
void solve()
{
	long long n , m;
	read(n , m);
	readarray(a , 1 , n);
	readarray(b , 1 , n);
	sort(a + 1 , a + n + 1);
	sort(b + 1 , b + n + 1);
	long long ans = 0;
	for(int i = 1 ; i <= n ; i++)
	{
		ans += a[i];
		ans += b[i];
	}
	for(int i = 1 , j = n ; i <= n && j >= 1 ; )
	{
		while(i <= n && a[i] + b[j] < m)
		{
			i++;
		}
		if(a[i] + b[j] >= m)
		{
			ans -= m;
		}
		i++ , j--;
	}
	printnl(ans);
}

我的思路就是这样双指针,求 hack。

2025/7/26 21:48
加载中...