309688: CF1719B. Mathematical Circus

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

Description

Mathematical Circus

题意翻译

给你两个整数 $n,k$($n$ 为偶数),让你将 $1$ 到 $n$ 这 $n$ 个数分成 $\dfrac{n}{2}$ 个有序二元组 $(a,b)$,满足 $(a+k)\cdot b$ 能被 $4$ 整除。可能不存在合法解。 输入第一行一个整数 $t(1\le t\le 10^4)$,表示有 $t$ 组数据。接下来 $t$ 行每行两个整数 $n,k(2\le n\le2\times10^5,0\le k\le10^9,n$ 为偶数 $)$,含义如题面所述。保证 $\sum n\le2\times10^5$。 对于每一组数据,首先输出一行一个字符串“YES”或“NO”,表示对于给定 $n,k$ 是否存在合法解。如果存在合法解,接下来 $\dfrac{n}{2}$ 行输出你构造的合法解,每行两个整数 $a,b$。

题目描述

A new entertainment has appeared in Buryatia — a mathematical circus! The magician shows two numbers to the audience — $ n $ and $ k $ , where $ n $ is even. Next, he takes all the integers from $ 1 $ to $ n $ , and splits them all into pairs $ (a, b) $ (each integer must be in exactly one pair) so that for each pair the integer $ (a + k) \cdot b $ is divisible by $ 4 $ (note that the order of the numbers in the pair matters), or reports that, unfortunately for viewers, such a split is impossible. Burenka really likes such performances, so she asked her friend Tonya to be a magician, and also gave him the numbers $ n $ and $ k $ . Tonya is a wolf, and as you know, wolves do not perform in the circus, even in a mathematical one. Therefore, he asks you to help him. Let him know if a suitable splitting into pairs is possible, and if possible, then tell it.

输入输出格式

输入格式


The first line contains one integer $ t $ ( $ 1 \leq t \leq 10^4 $ ) — the number of test cases. The following is a description of the input data sets. The single line of each test case contains two integers $ n $ and $ k $ ( $ 2 \leq n \leq 2 \cdot 10^5 $ , $ 0 \leq k \leq 10^9 $ , $ n $ is even) — the number of integers and the number being added $ k $ . It is guaranteed that the sum of $ n $ over all test cases does not exceed $ 2 \cdot 10^5 $ .

输出格式


For each test case, first output the string "YES" if there is a split into pairs, and "NO" if there is none. If there is a split, then in the following $ \frac{n}{2} $ lines output pairs of the split, in each line print $ 2 $ numbers — first the integer $ a $ , then the integer $ b $ .

输入输出样例

输入样例 #1

4
4 1
2 0
12 10
14 11

输出样例 #1

YES
1 2
3 4
NO
YES
3 4
7 8
11 12
2 1
6 5
10 9
YES
1 2
3 4
5 6
7 8
9 10
11 12
13 14

说明

In the first test case, splitting into pairs $ (1, 2) $ and $ (3, 4) $ is suitable, same as splitting into $ (1, 4) $ and $ (3, 2) $ . In the second test case, $ (1 + 0) \cdot 2 = 1 \cdot (2 + 0) = 2 $ is not divisible by $ 4 $ , so there is no partition.

Input

题意翻译

给你两个整数 $n,k$($n$ 为偶数),让你将 $1$ 到 $n$ 这 $n$ 个数分成 $\dfrac{n}{2}$ 个有序二元组 $(a,b)$,满足 $(a+k)\cdot b$ 能被 $4$ 整除。可能不存在合法解。 输入第一行一个整数 $t(1\le t\le 10^4)$,表示有 $t$ 组数据。接下来 $t$ 行每行两个整数 $n,k(2\le n\le2\times10^5,0\le k\le10^9,n$ 为偶数 $)$,含义如题面所述。保证 $\sum n\le2\times10^5$。 对于每一组数据,首先输出一行一个字符串“YES”或“NO”,表示对于给定 $n,k$ 是否存在合法解。如果存在合法解,接下来 $\dfrac{n}{2}$ 行输出你构造的合法解,每行两个整数 $a,b$。

Output

**数学马戏团**

**题意翻译**

给你两个整数 \( n, k \)(\( n \) 为偶数),让你将 \( 1 \) 到 \( n \) 这 \( n \) 个数分成 \( \frac{n}{2} \) 个有序二元组 \( (a,b) \),满足 \( (a+k) \cdot b \) 能被 \( 4 \) 整除。可能不存在合法解。

输入第一行一个整数 \( t(1\le t\le 10^4) \),表示有 \( t \) 组数据。接下来 \( t \) 行每行两个整数 \( n,k(2\le n\le2\times10^5,0\le k\le10^9,n \) 为偶数 \( ) \),含义如题面所述。保证 \( \sum n\le2\times10^5 \)。

对于每一组数据,首先输出一行一个字符串“YES”或“NO”,表示对于给定 \( n,k \) 是否存在合法解。如果存在合法解,接下来 \( \frac{n}{2} \) 行输出你构造的合法解,每行两个整数 \( a,b \)。

**题目描述**

Buryatia 出现了一种新的娱乐活动——数学马戏团!魔术师向观众展示两个数字——\( n \) 和 \( k \),其中 \( n \) 是偶数。接下来,他取 \( 1 \) 到 \( n \) 之间的所有整数,并将它们全部分成成对 \( (a, b) \)(每个整数必须恰好在一个对中),使得对于每个对,整数 \( (a + k) \cdot b \) 能被 \( 4 \) 整除(注意成对中数字的顺序很重要),或者报告不幸的是,观众无法这样分割。

Burenka 非常喜欢这样的表演,所以她让她的朋友 Tonya 成为魔术师,并给了他数字 \( n \) 和 \( k \)。

Tonya 是一只狼,众所周知,狼不会在马戏团表演,即使在数学马戏团也不会。因此,他请你帮忙。告诉他是否可以将数字分成成对,如果可以,请告诉他。

**输入输出格式**

**输入格式**

第一行包含一个整数 \( t \)(\( 1 \leq t \leq 10^4 \))——测试用例的数量。以下是输入数据集的描述。

每个测试用例的单行包含两个整数 \( n \) 和 \( k \)(\( 2 \leq n \leq 2 \cdot 10^5 \),\( 0 \leq k \leq 10^9 \),\( n \) 是偶数)——整数的数量和要添加的数字 \( k \)。

保证所有测试用例的 \( n \) 之和不超过 \( 2 \cdot 10^5 \)。

**输出格式**

对于每个测试用例,如果可以分成成对,则首先输出字符串 "YES",如果不能,则输出 "NO"。

如果可以分割,那么在接下来的 \( \frac{n}{2} \) 行中输出分割的成对,每行打印 2 个数字——首先是整数 \( a \),然后是整数 \( b \)。

**输入输出样例**

**输入样例 #1**

```
4
4 1
2 0
12 10
14 11
```

**输出样例 #1**

```
YES
1 2
3 4
NO
YES
3 4
7 8
11 12
2 1
6 5
10 9
YES
1 2
3 4
5 6
7 8
9 10
11 12
13 14
```

**说明**

在第一个测试用例中,分割成对 \( (1, 2) \) 和 \( (3, 4) \) 是合适的,与分割成 \( (1, 4) \) 和 \( (3, 2) \) 也一样。

在第二个测试用例中,\( (1 + 0) \cdot 2 = 1 \cdot (2 + 0) = 2 \) 不能被 \( 4 \) 整除,所以没有分割。**数学马戏团** **题意翻译** 给你两个整数 \( n, k \)(\( n \) 为偶数),让你将 \( 1 \) 到 \( n \) 这 \( n \) 个数分成 \( \frac{n}{2} \) 个有序二元组 \( (a,b) \),满足 \( (a+k) \cdot b \) 能被 \( 4 \) 整除。可能不存在合法解。 输入第一行一个整数 \( t(1\le t\le 10^4) \),表示有 \( t \) 组数据。接下来 \( t \) 行每行两个整数 \( n,k(2\le n\le2\times10^5,0\le k\le10^9,n \) 为偶数 \( ) \),含义如题面所述。保证 \( \sum n\le2\times10^5 \)。 对于每一组数据,首先输出一行一个字符串“YES”或“NO”,表示对于给定 \( n,k \) 是否存在合法解。如果存在合法解,接下来 \( \frac{n}{2} \) 行输出你构造的合法解,每行两个整数 \( a,b \)。 **题目描述** Buryatia 出现了一种新的娱乐活动——数学马戏团!魔术师向观众展示两个数字——\( n \) 和 \( k \),其中 \( n \) 是偶数。接下来,他取 \( 1 \) 到 \( n \) 之间的所有整数,并将它们全部分成成对 \( (a, b) \)(每个整数必须恰好在一个对中),使得对于每个对,整数 \( (a + k) \cdot b \) 能被 \( 4 \) 整除(注意成对中数字的顺序很重要),或者报告不幸的是,观众无法这样分割。 Burenka 非常喜欢这样的表演,所以她让她的朋友 Tonya 成为魔术师,并给了他数字 \( n \) 和 \( k \)。 Tonya 是一只狼,众所周知,狼不会在马戏团表演,即使在数学马戏团也不会。因此,他请你帮忙。告诉他是否可以将数字分成成对,如果可以,请告诉他。 **输入输出格式** **输入格式** 第一行包含一个整数 \( t \)(\( 1 \leq t \leq 10^4 \))——测试用例的数量。以下是输入数据集的描述。 每个测试用例的单行包含两个整数 \( n \) 和 \( k \)(\( 2 \leq n \leq 2 \cdot 10^5 \),\( 0 \leq k \leq 10^9 \),\( n \) 是偶数)——整数的数量和要添加的数字 \( k \)。 保证所有测试用例的 \( n \) 之和不超过 \( 2 \cdot 10^5 \)。 **输出格式** 对于每个测试用例,如果可以分成成对,则首先输出字符串 "YES",如果不能,则输出 "NO"。 如果可以分割,那么在接下来的 \( \frac{n}{2} \) 行中输出分割的成对,每行打印 2 个数字——首先是整数 \( a \),然后是整数 \( b \)。 **输入输出样例** **输入样例 #1** ``` 4 4 1 2 0 12 10 14 11 ``` **输出样例 #1** ``` YES 1 2 3 4 NO YES 3 4 7 8 11 12 2 1 6 5 10 9 YES 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ``` **说明** 在第一个测试用例中,分割成对 \( (1, 2) \) 和 \( (3, 4) \) 是合适的,与分割成 \( (1, 4) \) 和 \( (3, 2) \) 也一样。 在第二个测试用例中,\( (1 + 0) \cdot 2 = 1 \cdot (2 + 0) = 2 \) 不能被 \( 4 \) 整除,所以没有分割。

加入题单

算法标签: