ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

CF1719B Mathematical Circus 题解

2022-08-17 18:30:56  阅读:144  来源: 互联网

标签:Mathematical 放在 位置 奇数 题解 Circus times 偶数 整除


一道不错的构造题。

思路

先说一句废话,能被 \(4\) 整除的数在除以 \(2\) 之后得到的数还是一个偶数。

我们可以根据 \(k\) 的奇偶性以及 \(k\) 除以 \(2\) 之后的奇偶性分成三种情况来进行讨论。

当 \(k\) 为奇数时,我们把所有偶数都放在 \(b\) 的位置上,把所有的奇数都放在 \(a\) 的位置上,因为奇数 \(+\) 奇数 \(=\) 偶数,这样可以保证每个 $(a + k) \cdot b $ 都是两个偶数相乘,两个偶数相乘的结果一定可以被 \(4\) 整除。

当 \(k\) 为偶数且 \(\dfrac{k}{2}\) 为奇数时,我们把所有能被 \(4\) 整除的偶数放在 \(b\) 的位置上,并任找一个奇数放在 \(a\) 的位置上即可,对于那些不能被 \(4\) 整除的偶数,我们可以把它放在 \(a\) 的位置上,把任意一个奇数放在 \(b\) 的位置上,原因很简单,我们设 \(k=2\times p\),其中 \(p\) 为一个奇数,设相对的偶数 \(a\) 为 \(a=2\times q\),其中 \(q\) 为一个奇数。这时 \((a+k)=2\times (p+q)\)。
因为 \(p\) 和 \(q\) 都是奇数,它们的和是一个偶数,两个偶数的积一定可以被 \(4\) 整除,这时后让 \(b\) 等于任意一个奇数即可。

当 \(k\) 为偶数且 \(\dfrac{k}{2}\) 为奇数时,我们把所有能被 \(4\) 整除的偶数放在 \(b\) 的位置上,并任找一个奇数放在 \(a\) 的位置上即可,对于那些不能被 \(4\) 整除的偶数,我们可以把它放在 \(a\) 的位置上,把任意一个奇数放在 \(b\) 的位置上,原因很简单,我们设 \(k=2\times p\),其中 \(p\) 为一个奇数,设相对的偶数 \(a\) 为 \(a=2\times q\),其中 \(q\) 为一个奇数。这时 \((a+k)=2\times (p+q)\)。

当 \(k\) 为偶数且 \(\dfrac{k}{2}\) 为奇偶数时,类比上面的过程,那些不能被 \(4\) 整除的偶数没有搭配对象,无论如何都不能被 \(4\) 整除,此时无解。

代码

#include <bits/stdc++.h>
using namespace std;
int t, n, k;

int main() {
	scanf("%d", &t);

	while (t--) {
		scanf("%d%d", &n, &k);

		if (k & 1) {
			puts("YES");

			for (int i = 1; i <= n; i += 2) {

				printf("%d %d\n", i, i + 1);
			}
		} else {
			if ((k >> 1) & 1) {
				puts("YES");

				for (int i = 1; i <= n; i += 2) {

					if (((i + 1) >> 1) & 1) {
						printf("%d %d\n", i + 1, i);
					} else {
						printf("%d %d\n", i, i + 1);
					}

				}
			} else {
				puts("NO");
			}
		}
	}

	return 0;
}

标签:Mathematical,放在,位置,奇数,题解,Circus,times,偶数,整除
来源: https://www.cnblogs.com/Dregen-Yor/p/16596323.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有