社区讨论

实在想不出优化方法了

P6823「EZEC-4」paulzrm Loves Array参与者 2已保存回复 1

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
1 条
当前快照
1 份
快照标识符
@mi8z6p9v
此快照首次捕获于
2025/11/21 22:48
4 个月前
此快照最后确认于
2025/11/22 09:23
3 个月前
查看原帖
24ptsCODE24pts_{CODE}:
CPP
#include<bits/stdc++.h>

using namespace std;
int a[1000005];
bool cmp(int a, int b) {
	return a > b;
}
inline int read() {
	int x = 0, f = 1;
	char c = getchar();
	while (c < '0' || c > '9') {
		if (c == '-') f = -1;
		c = getchar();
	}
	while (c >= '0' && c <= '9') {
		x = x * 10 + (c - '0');
		c = getchar();
	}
	return x * f;
}
inline void write(int x) {
	if (x < 0) {
		putchar('-');
		x = -x;
	}
	if (x > 9) write(x/10);
	putchar(x%10+'0');
}
int main() {
	int n, m;
	n = read();
	m = read();
	int tot = 0;
	for (int i = 1; i <= n; i++) {
		tot++;
		a[tot] = i;
	}
	while (m--) {
		int x;
		cin >> x;
		if (x == 1) {
			sort(a+1,a+n+1);
		}
		if (x == 2) {
			sort(a+1,a+n+1,cmp);
		}
		if (x == 3) {
			int p, q;
			cin >> p >> q;
			swap(a[p],a[q]);
		}
		if (x == 4) {
			for (int i = n; i >= n/2+1; i--) {
				swap(a[i],a[n-i+1]);
			}
		}
	}
	for (int i = 1; i <= n; i++) {
		write(a[i]);
		putchar(' ');
	}
	return 0;
}
这道题貌似只要一排序就必定TLETLE,但是也想不到什么更好的优化方法了,曾思考过字符串优化,但是貌似也不行,更加复杂。 故只能挂24pts24pts

回复

1 条回复,欢迎继续交流。

正在加载回复...