首页 > 其他分享 >洛谷P8872 莲子的物理热力学

洛谷P8872 莲子的物理热力学

时间:2022-12-09 15:12:24浏览次数:37  
标签:莲子 long P8872 freopen 洛谷 include define

你可以在一次操作中将一个数变为全局最大值或最小值,问n个给定的数在m次操作后最小的极差是多少

考虑将n个数排序,假设 \(m\) 次操作后,剩下来的数字的值域为 \([l,r]\),那么所有小于 \(l\) 的数字和大于 \(r\) 的数字肯定被操作了,于是考虑枚举 \(l\) 和 \(r\),考虑我们删掉的数越多一定不会更劣,那么我们可以枚举 \(l\) 和 \(r\) 中的一个即可

#include <iostream>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <algorithm>
#include <queue>

#define file(s) freopen(s".in", "r", stdin), freopen(s".out", "w", stdout);
#define dbg(x) cerr<<"In Line"<<__LINE__<<" the "<<#x<<" = "<<x<<'\n';
#define abs(x) ((x) < 0 ? -(x) : (x))

using namespace std;

const int N = 2e6 + 10;

const long long INF = 1ll << 40;

inline int read() {
	bool sym = 0; int res = 0; char ch = getchar();
	while (!isdigit(ch)) sym |= (ch == '-'), ch = getchar();
	while (isdigit(ch)) res = (res << 3) + (res << 1) + (ch ^ 48), ch = getchar();
	return sym ? -res : res;
}

int n, m, k, a[N];

int main() {
	n = read(); m = read();
	for (int i = 1; i <= n; i++) a[i] = read();
	if (m >= n - 1) {printf("0\n"); return 0;}
	sort(a + 1, a + n + 1); long long ans = INF;
	for (int i = 0; i <= m / 2; i++) {
		ans = min(ans, 1ll * a[n - m + i * 2] - a[i + 1]);
	}
	for (int i = 0; i <= m / 2; i++) {
		ans = min(ans, 1ll * a[n - i] - a[m - i * 2 + 1]);
	}
	printf("%lld\n", ans);
	return 0;
}

标签:莲子,long,P8872,freopen,洛谷,include,define
From: https://www.cnblogs.com/zrzring/p/LGP8872.html

相关文章

  • 洛谷P8848 [JRKSJ R5] 1-1 B
    给定一个由\(1\)和\(-1\)序列\(a\),询问有多少个将\(a\)重排后的序列使得该序列的最大子段和最小化,称两个序列不同,当且仅当这两个序列有任意一个位置上的数不同考......
  • 洛谷月赛简单题目选做
    简单题目指黄+~蓝P5888传球游戏Easy考虑朴素dp,设\(dp[i][j]\),表示第\(j\)轮球在\(i\)手中的方案数,时间复杂度\(O(nm)\)。观察到如果两个人均不是\(1\)号......
  • 洛谷 P1957 口算练习题
        实现代码(原创):#include<stdio.h>#include<string.h>#include<stdlib.h>char*itoa(intvalue,char*str,intradix){staticchardig[]=......
  • 洛谷P2504聪明的猴子
    思路:最小生成树1#include<cstdio>2#include<cstdlib>3#include<iostream>4#include<cstring>5#include<cmath>6#include<algorithm>7#include<vecto......
  • 洛谷P1111修复公路
    思路:并查集1#include<cstdio>2#include<iostream>3#include<algorithm>4#include<math.h>5#include<vector>6#include<set>7usingnamespacestd;......
  • 【洛谷P8866】喵了个喵
    题目题目链接:https://www.luogu.com.cn/problem/P8866小E喜欢上了一款叫做《喵了个喵》的游戏。这个游戏有一个牌堆和\(n\)个可以从栈底删除元素的栈,任务是要通过游......
  • 洛谷 P1891 疯狂 LCM
    \(\text{lcm}\)不好处理,转化为\(\gcd\):\[n\sum_{i=1}^n\frac{i}{\gcd(i,n)}\]\(\gcd\)相关题目的套路——枚举因数:\[n\sum_{d|n}\sum_{i=1}^n\fracid[......
  • 洛谷 P4552 [Poetize6] IncDec Sequence(差分)
    题目分析直接贴一个洛谷上的题解,真的秀,讲的又清楚又好要使得序列的数全部相等,其实就是让他们之间的差全为0,也就是差分序列的除了第一项每一项都是0,为什么除了第一项呢,因......
  • 洛谷 P1387 最大正方形(前缀和,二分)
    题目分析当一个边长为x的正方形不包含0时,这个正方形内的二维前缀和为x*x,题目想求满足条件的最大的正方形的边长假如最大的正方形的边长为ans,那么凡是边长大于ans的正方形......
  • 洛谷 P1205 [USACO1.2] 方块转换 Transformations
    [USACO1.2]方块转换Transformations题目描述一块\(n\timesn\)正方形的黑白瓦片的图案要被转换成新的正方形图案。写一个程序来找出将原始图案按照以下列转换方法转......