Logo xuyunao 的博客

博客

ABC361 C题解

...
xuyunao
2025-12-01 12:51:01
Dtw_ 可爱喵,KSCD_ 可爱喵

本文章由 WyOJ Shojo 从洛谷专栏拉取,原发布时间为 2024-07-07 07:31:00

ABC361 C题解

原题 题目要求删除几个元素后使数组的极差最小

那么怎么样求最小的极差呢?

众所周知,极差 = 最大值 - 最小值

因此想要使极差最小,就要尽可能的增加最小值或减少最大值;因此删除的K个数要从有序数组中删除头尾,并查找出极差最小情况

首先我们需要输入这个数组并对他进行排序

bool cmp(int a,int b)
{
	return a < b;
}
int n,k;
cin >> n >> k;
for(int i = 0;i < n;i++)
{
	cin >> a[i];
}
sort(a,a+n,cmp);

然后枚举K种情况:

  • 设开头删除i个数,则剩余极差=a[i + n - k - 1] - a[i]
  • 接下来求取最小值即可

评论

暂无评论

发表评论

可以用@mike来提到mike这个用户,mike会被高亮显示。如果你真的想打“@”这个字符,请用“@@”。