【洛谷】P11036 【MX-X3-T3】「RiOI-4」GCD 与 LCM 问题 的题解

news/2024/9/19 2:01:01 标签: c++, 算法, 开发语言

【洛谷】P11036 【MX-X3-T3】「RiOI-4」GCD 与 LCM 问题 的题解

题目传送门

题解

神奇构造题qaq

简化一下下题目,就是要求 a + b + c + d = gcd ⁡ ( a , b ) + lcm ⁡ ( c , d ) a + b + c +d = \gcd(a, b) + \operatorname{lcm}(c,d) a+b+c+d=gcd(a,b)+lcm(c,d)

分类讨论

  • 考虑 a a a 为奇数的情况

b = a b = a b=a,则 gcd ⁡ ( a , b ) = a \gcd(a,b)=a gcd(a,b)=a lcm ⁡ ( c , d ) = a + c + d \operatorname{lcm}(c,d)=a+c+d lcm(c,d)=a+c+d。如果令 d = 2 d=2 d=2 lcm ⁡ ( c , 2 ) = 2 c \operatorname{lcm}(c,2)=2c lcm(c,2)=2c,显然 c = a + 2 c=a+2 c=a+2。构造 ( a , a , a + 2 , 2 ) (a,a,a+2,2) (a,a,a+2,2)

  • 考虑 a a a 为任意数的情况

b = a b=a b=a,打表观察得四元组 ( a , a , 2 lowbit ⁡ ( a ) , a + 2 lowbit ⁡ ( a ) ) (a,a,2\operatorname{lowbit}(a),a+2\operatorname{lowbit}(a)) (a,a,2lowbit(a),a+2lowbit(a))

具体实现可以直接枚举,时间复杂度 O ( log ⁡ V ) O(\log V) O(logV),我用的是 lowbit ⁡ ( a ) \operatorname{lowbit}(a) lowbit(a),比较保险,毕竟时间卡的挺死的,时间复杂度 O ( 1 ) O(1) O(1)

代码

#include <bits/stdc++.h>
#define lowbit(x) x & (-x)
#define endl "\n"
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
namespace fastIO {
	inline int read() {
		register int x = 0, f = 1;
		register char c = getchar();
		while (c < '0' || c > '9') {
			if(c == '-') f = -1;
			c = getchar();
		}
		while (c >= '0' && c <= '9') x = x * 10 + c - '0', c = getchar();
		return x * f;
	}
	inline void write(int x) {
		if(x < 0) putchar('-'), x = -x;
		if(x > 9) write(x / 10);
		putchar(x % 10 + '0');
		return;
	}
}
using namespace fastIO;
int a, c, t;
int main() {
	//freopen(".in","r",stdin);
	//freopen(".out","w",stdout);
	t = read(); 
	for(int i = 1; i <= t; i ++) { 
		a = read();
		c = (lowbit(a)) << 1; 
		write(1), putchar(' '), write(c), putchar(' '), write(c + a), putchar('\n'); 
	}
	return 0;
}

http://www.niftyadmin.cn/n/5664851.html

相关文章

等保2.0之Hana数据库测评

等保2.0之Hana数据库测评 HANA&#xff08;High-Performance Analytic Appliance&#xff09;是由SAP开发的一种内存数据库。它是一款面向实时数据处理和分析的高性能数据库解决方案。 HANA数据库具有以下特点&#xff1a; 内存计算&#xff1a;HANA利用内存作为主要存储介质…

无人机之飞行高度篇

无人机的飞行高度受到多种因素的制约&#xff0c;包括无人机本身的性能、无线信号的强度与稳定性&#xff0c;以及国家相关的法律法规等。具体而言&#xff0c;不同类型的无人机有不同的飞行高度限制&#xff1a; 微型无人机&#xff1a;飞行高度一般不得超过50米。这类无人机…

Leetcode 每日一题:Evaluate Division

写在前面 今天依旧是一道来自图论的题目&#xff0c;而今天这道题目的难度也是相对于前面分享过的题目中难度最大的一种。题主在第一次做这道题的时候根本没有反应过来这道题目可以转化为 图 来解决。而这道题目将一个 二维数组的乘除 运算转化为 图论 的过程需要一定的数学思…

Spring Boot项目:多模块还是单模块?架构师的一次深思熟虑!

在一个阳光明媚的下午&#xff0c;作为一名软件架构师&#xff0c;你正在一边喝着咖啡&#xff0c;一边思索着一个问题&#xff1a;Spring Boot项目到底是多模块好&#xff0c;还是单模块好呢&#xff1f; 这并不是一个简单的技术选择&#xff0c;它关系到整个项目的架构走向、…

Longman Dictionary of Contemporary English (朗文当代高级英语辞典)

Longman Dictionary of Contemporary English {朗文当代高级英语辞典} 1. Longman Dictionary of Contemporary English1.1. school References 1. Longman Dictionary of Contemporary English https://www.ldoceonline.com/ 1.1. school https://www.ldoceonline.com/dicti…

二叉树的广度优先遍历和题目

二叉树广度优先遍历利用队列 。 typedef char BTDataType; typedef struct BinaryTreeNode {BTDataType data;struct BinaryTreeNode* left;struct BinaryTreeNode* right; }BTNode; typedef BTNode* QDataType;// 链式结构&#xff1a;表示队列 typedef struct QueueNode {…

深入理解Go语言中的并发封闭与for-select循环模式

在现代编程中,并发已经成为提高程序性能和响应能力的关键手段。然而,在并发环境下,如何安全地访问和操作共享数据却是一大挑战。本文将深入探讨Go语言中的**封闭(confinement)**技术,以及常见的for-select循环模式,帮助您编写更高效、更安全的并发代码。 并发编程中的安…

linux-Shell 编程-常用 Shell 脚本技巧

Linux Shell 编程&#xff1a;常用 Shell 脚本技巧 一、概述 Shell 脚本是 Linux 系统管理员和开发人员日常自动化任务的重要工具。通过编写 Shell 脚本&#xff0c;用户可以自动化重复性工作、简化系统维护、管理服务器资源等。Shell 脚本的强大之处在于其简洁和灵活性&…