CF1743B Permutation Value

题链:cf luogu

构造。

Description

构造一个 \(1\sim n\) 的排列,使之连续子串构成 \(1\sim k\) 排列的数目最少。

Analysis

显然,最小数目可以为 \(2\)。因为可以构造所示的排列:

\[1,A_2,A_3,A_4,\cdots,A_{n-1},2 \]

此时 \(1\)\(2\) 分居两侧,中间的 \(n-2\) 个数排列任意,连续的排列仅 \(\left[1,n\right]\)\(\left[1,1\right]\) 两个。

Code

#include <stdio.h>
int n;
inline void Solve() {
	scanf("%d", &n);
	printf("1 ");
	for (int i = n; i >= 2; --i)
		printf("%d ", i);
	putchar('\n');
}
int main(void) {
	int T; for (scanf("%d", &T); T--; ) Solve();
	return 0;
}

The end. Thanks.

(鞠躬撒花

posted @ 2022-10-25 16:25  Dry_ice  阅读(32)  评论(0)    收藏  举报