CF1391A Suborrays
题目描述
长度为 $n$ 的排列是一个由 $1$ 到 $n$ 的 $n$ 个互不相同的整数按任意顺序组成的数组。例如,$[2,3,1,5,4]$ 是一个排列,但 $[1,2,2]$ 不是排列($2$ 在数组中出现了两次),$[1,3,4]$ 也不是排列($n=3$,但数组中有 $4$)。
对于正整数 $n$,如果长度为 $n$ 的排列 $p$ 满足对于每一对 $i$ 和 $j$($1 \le i \le j \le n$),都有如下条件,则称 $p$ 是一个“好”排列:
- $(p_i \text{ OR } p_{i+1} \text{ OR } \ldots \text{ OR } p_{j-1} \text{ OR } p_j) \ge j-i+1$,其中 $\text{OR}$ 表示按位或运算。
换句话说,如果对于排列 $p$ 的每一个子数组,其所有元素的按位或结果不小于该子数组的元素个数,则称 $p$ 是“好”排列。
给定正整数 $n$,请输出任意一个长度为 $n$ 的“好”排列。可以证明,在给定的约束条件下,总是存在这样的排列。
输入格式
每组测试包含多个测试用例。第一行包含测试用例数 $t$($1 \le t \le 100$)。接下来每个测试用例占一行,每行包含一个整数 $n$($1 \le n \le 100$)。
输出格式
对于每个测试用例,输出任意一个长度为 $n$ 的“好”排列,每个排列占一行。
说明/提示
对于 $n=3$,$[3,1,2]$ 是一个“好”排列。下面列出了一些子数组的情况:
- $3\text{ OR }1 = 3 \geq 2$($i=1, j=2$)
- $3\text{ OR }1\text{ OR }2 = 3 \geq 3$($i=1, j=3$)
- $1\text{ OR }2 = 3 \geq 2$($i=2, j=3$)
- $1 \geq 1$($i=2, j=2$)
同理,你可以验证 $[4,3,5,2,7,1,6]$ 也是一个“好”排列。
由 ChatGPT 4.1 翻译