309825: CF1741B. Funny Permutation

Memory Limit:256 MB Time Limit:1 S
Judge Style:Text Compare Creator:
Submit:0 Solved:0

Description

Funny Permutation

题意翻译

## 题目描述 如果一个长度为 $n$ 的数列满足恰好包含 $1$ 到 $n$ 的整数各一个,则我们称之为排列。例如,$[3,1,4,2]$、$[1]$ 和 $[2,1]$ 都是排列,但是 $[1,2,1]$、$[0,1]$ 和 $[1,3,4]$ 都不是。 给你一个 $n$,你需要构造一个长度为 $n$ 的排列 $p$,使得它同时满足以下两个要求: 1. $\forall 1 \leq i \leq n$,都至少有一个邻居($p_i$ 的邻居为 $p_{i + 1}$ 和 $p_{i - 1}$),使其值为 $p_i + 1$ 或 $p_i - 1$。 2. $\forall 1 \leq i \leq n$,都有 $p_i \ne i$。 我们称同时符合以上两个要求的排列为“有趣的排列”。 例如,当 $n = 4$ 时,$[4,3,1,2]$ 是一个“有趣的排列”,因为: * $p_2 = p_1 - 1 = 4 - 1 = 3$; * $p_1 = p_2 + 1 = 3 + 1 = 4$; * $p_4 = p_3 + 1 = 1 + 1 = 2$; * $p_3 = p_4 - 1 = 2 - 1 = 1$; * $\forall 1 \leq i \leq n$,都有 $p_i \ne i$。 给定一个 $n$,你需要构造出一个长度为 $n$ 的“有趣的排列”,或者输出一个 $-1$ 来表明不存在长度为 $n$ 的“有趣的排列”。 ## 输入格式 第一行,输入一个正整数 $t(1 \leq t \leq 10^4$,表示数据组数。 接下来 $t$ 行,每行一个正整数 $n(2 \leq n \leq 2 \times 10^5)$,表示你需要构造一个长度为 $n$ 的“有趣的排列”。 数据保证 $\sum{n} \leq 2 \times 10^5$。 ## 输出格式 对于每组测试数据,输出**任意**一个长度为 $n$ 的“有趣的排列,或者输出一个 $-1$——如果这根本不可能。 (Translated by @[owo_ImposterAnYu_owo](https://www.luogu.com.cn/user/510555))

题目描述

A sequence of $ n $ numbers is called permutation if it contains all numbers from $ 1 $ to $ n $ exactly once. For example, the sequences $ [3, 1, 4, 2] $ , \[ $ 1 $ \] and $ [2,1] $ are permutations, but $ [1,2,1] $ , $ [0,1] $ and $ [1,3,4] $ are not. For a given number $ n $ you need to make a permutation $ p $ such that two requirements are satisfied at the same time: - For each element $ p_i $ , at least one of its neighbors has a value that differs from the value of $ p_i $ by one. That is, for each element $ p_i $ ( $ 1 \le i \le n $ ), at least one of its neighboring elements (standing to the left or right of $ p_i $ ) must be $ p_i + 1 $ , or $ p_i - 1 $ . - the permutation must have no fixed points. That is, for every $ i $ ( $ 1 \le i \le n $ ), $ p_i \neq i $ must be satisfied. Let's call the permutation that satisfies these requirements funny. For example, let $ n = 4 $ . Then \[ $ 4, 3, 1, 2 $ \] is a funny permutation, since: - to the right of $ p_1=4 $ is $ p_2=p_1-1=4-1=3 $ ; - to the left of $ p_2=3 $ is $ p_1=p_2+1=3+1=4 $ ; - to the right of $ p_3=1 $ is $ p_4=p_3+1=1+1=2 $ ; - to the left of $ p_4=2 $ is $ p_3=p_4-1=2-1=1 $ . - for all $ i $ is $ p_i \ne i $ . For a given positive integer $ n $ , output any funny permutation of length $ n $ , or output -1 if funny permutation of length $ n $ does not exist.

输入输出格式

输入格式


The first line of input data contains a single integer $ t $ ( $ 1 \le t \le 10^4 $ ) — the number of test cases. The description of the test cases follows. Each test case consists of f single line containing one integer $ n $ ( $ 2 \le n \le 2 \cdot 10^5 $ ). It is guaranteed that the sum of $ n $ over all test cases does not exceed $ 2 \cdot 10^5 $ .

输出格式


For each test case, print on a separate line: - any funny permutation $ p $ of length $ n $ ; - or the number -1 if the permutation you are looking for does not exist.

输入输出样例

输入样例 #1

5
4
3
7
5
2

输出样例 #1

3 4 2 1
-1
6 7 4 5 3 2 1
5 4 1 2 3
2 1

说明

The first test case is explained in the problem statement. In the second test case, it is not possible to make the required permutation: permutations $ [1, 2, 3] $ , $ [1, 3, 2] $ , $ [2, 1, 3] $ , $ [3, 2, 1] $ have fixed points, and in $ [2, 3, 1] $ and $ [3, 1, 2] $ the first condition is met not for all positions.

Input

题意翻译

## 题目描述 如果一个长度为 $n$ 的数列满足恰好包含 $1$ 到 $n$ 的整数各一个,则我们称之为排列。例如,$[3,1,4,2]$、$[1]$ 和 $[2,1]$ 都是排列,但是 $[1,2,1]$、$[0,1]$ 和 $[1,3,4]$ 都不是。 给你一个 $n$,你需要构造一个长度为 $n$ 的排列 $p$,使得它同时满足以下两个要求: 1. $\forall 1 \leq i \leq n$,都至少有一个邻居($p_i$ 的邻居为 $p_{i + 1}$ 和 $p_{i - 1}$),使其值为 $p_i + 1$ 或 $p_i - 1$。 2. $\forall 1 \leq i \leq n$,都有 $p_i \ne i$。 我们称同时符合以上两个要求的排列为“有趣的排列”。 例如,当 $n = 4$ 时,$[4,3,1,2]$ 是一个“有趣的排列”,因为: * $p_2 = p_1 - 1 = 4 - 1 = 3$; * $p_1 = p_2 + 1 = 3 + 1 = 4$; * $p_4 = p_3 + 1 = 1 + 1 = 2$; * $p_3 = p_4 - 1 = 2 - 1 = 1$; * $\forall 1 \leq i \leq n$,都有 $p_i \ne i$。 给定一个 $n$,你需要构造出一个长度为 $n$ 的“有趣的排列”,或者输出一个 $-1$ 来表明不存在长度为 $n$ 的“有趣的排列”。 ## 输入格式 第一行,输入一个正整数 $t(1 \leq t \leq 10^4$,表示数据组数。 接下来 $t$ 行,每行一个正整数 $n(2 \leq n \leq 2 \times 10^5)$,表示你需要构造一个长度为 $n$ 的“有趣的排列”。 数据保证 $\sum{n} \leq 2 \times 10^5$。 ## 输出格式 对于每组测试数据,输出**任意**一个长度为 $n$ 的“有趣的排列,或者输出一个 $-1$——如果这根本不可能。 (Translated by @[owo_ImposterAnYu_owo](https://www.luogu.com.cn/user/510555))

Output

**题目大意**:

给定一个整数 \( n \),要求构造一个长度为 \( n \) 的排列 \( p \),使得它同时满足以下两个条件:

1. 对于任意的 \( 1 \leq i \leq n \),都至少有一个邻居(\( p_i \) 的邻居为 \( p_{i + 1} \) 和 \( p_{i - 1} \)),使其值为 \( p_i + 1 \) 或 \( p_i - 1 \)。
2. 对于任意的 \( 1 \leq i \leq n \),都有 \( p_i \ne i \)。

同时符合以上两个条件的排列被称为“有趣的排列”。

给定一个 \( n \),你需要构造出一个长度为 \( n \) 的“有趣的排列”,或者输出一个 \( -1 \) 来表明不存在长度为 \( n \) 的“有趣的排列”。

**输入格式**:

第一行,输入一个正整数 \( t (1 \leq t \leq 10^4) \),表示数据组数。

接下来 \( t \) 行,每行一个正整数 \( n (2 \leq n \leq 2 \times 10^5) \),表示你需要构造一个长度为 \( n \) 的“有趣的排列”。

数据保证 \( \sum{n} \leq 2 \times 10^5 \)。

**输出格式**:

对于每组测试数据,输出**任意**一个长度为 \( n \) 的“有趣的排列,或者输出一个 \( -1 \)——如果这根本不可能。**题目大意**: 给定一个整数 \( n \),要求构造一个长度为 \( n \) 的排列 \( p \),使得它同时满足以下两个条件: 1. 对于任意的 \( 1 \leq i \leq n \),都至少有一个邻居(\( p_i \) 的邻居为 \( p_{i + 1} \) 和 \( p_{i - 1} \)),使其值为 \( p_i + 1 \) 或 \( p_i - 1 \)。 2. 对于任意的 \( 1 \leq i \leq n \),都有 \( p_i \ne i \)。 同时符合以上两个条件的排列被称为“有趣的排列”。 给定一个 \( n \),你需要构造出一个长度为 \( n \) 的“有趣的排列”,或者输出一个 \( -1 \) 来表明不存在长度为 \( n \) 的“有趣的排列”。 **输入格式**: 第一行,输入一个正整数 \( t (1 \leq t \leq 10^4) \),表示数据组数。 接下来 \( t \) 行,每行一个正整数 \( n (2 \leq n \leq 2 \times 10^5) \),表示你需要构造一个长度为 \( n \) 的“有趣的排列”。 数据保证 \( \sum{n} \leq 2 \times 10^5 \)。 **输出格式**: 对于每组测试数据,输出**任意**一个长度为 \( n \) 的“有趣的排列,或者输出一个 \( -1 \)——如果这根本不可能。

加入题单

算法标签: