首页 > 其他分享 >P11036 【MX-X3-T3】「RiOI-4」GCD 与 LCM 问题

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

时间:2024-09-12 19:03:26浏览次数:13  
标签:LCM gcd 奇数 T3 long lcm GCD

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

题意描述

给出 \(a\) ,求一组构造 \(b,c,d\) 使得 \(a+b+c+d=gcd(a,b)+lcm(c,d)\)

同时需要保证 \(b,c,d\le 1634826193\)

思路

变量实在太多了,考虑先大胆消掉一个,令 \(b=1\) ,此时问题简化为使得 \(a+c+d=lcm(c,d)\)

赛时真的没想出来那么 nb 的构造,只想出来了一个 \(c=2a,d=3a\) ,的确可以得到部分分,但是有一部分答案超出了题目要求的范围。

正解

由于原题明显地给出了 \(a\) 为奇数的部分分,所以思考一下奇数的时候如何构造。

令 \(b=1\) 照旧,此时我们至少需要 \(lcm(c,d)\ge c+d\) ,并且还要带有一个 \(a\) .

尝试构造 \(c=2,d=a,lcm(c,d)=2a\) ,发现右边少了 \(2\) 。

调整 \(d\) 为 \(a+2\) ,仍然满足 \(c,d\) 互质,且满足了原构造。

那么接下来考虑 \(a\) 为偶数的情况,直觉上来说是可以往奇数的情况靠拢的,那么把 \(a\) 中的 \(2\) 全部除净变成 \(a'\) ,就回到了奇数的情况,由于 :

\(gcd/lcm(x,y)\) 都满足 \(gcd/lcm(kx,ky)=k\cdot gcd/lcm(x,y)\) ,所以只需要把除掉的 \(2\) 乘回去就 ok 了。

//GCD  LCM 
#include<bits/stdc++.h>
using namespace std;
inline long long div(long long x)
{
	int cnt=0;
	while(x%2==0)
	{
		cnt++;
		x>>=1;
	}
	return 1ll<<cnt;
}
int main()
{
	int T,a;
	cin>>T;
	while(T--)
	{
		scanf("%d",&a);
		if(a%2)
			printf("%d %d %d\n",1,2,a+2);
		else
		{
			long long d=div(a);
			printf("%lld %lld %lld\n",d,d<<1,a+2*d);
		}
	}
	return 0;
}

标签:LCM,gcd,奇数,T3,long,lcm,GCD
From: https://www.cnblogs.com/Hanggoash/p/18410838

相关文章

  • GCD Queries
    GCDQueries交互题。发现一个结论:对于三个数\(a,b,c\),我们询问\(ga=\gcd(a,c),gb=\gcd(b,c)\)。若\(ga=gb\),则\(c\not=0\)若\(ga>gb\),则\(b\not=0\)若\(ga<gb\),则\(a\not=0\)也就是说,进行两次询问可以排除掉一个位置,那么我们一共只需要进行\(2(n-2)\)次询......
  • 「NOI2021 D1T3 庆典」题解
    uoj675加强:\(\sumk\le6\times10^5\)暴力\(u\)在\(s\Rightarrowt\)路径上\(\iff\)正图上\(s\Rightarrowu\)且反图上\(u\Rightarrowt\)时间复杂度\(O((n+m)q)\)正解只关心可达性,不妨SCC缩点成DAG。注意到一个奇怪的条件:对于三座城市\(x,y,z\),若\(x\Right......
  • 【FAT32文件系统详细分析 (格式化SD nandSD卡)】
    ......
  • 小小GCD、LCM拿下拿下
    目录最大公约数(GCD)最大公约数(GCD)求解:一、辗转相除法二、三目运算符三、位运算最大公约数(GCD)模板: 最大公约数(GCD)例题:最小公倍数(LCM)最小公倍数(LCM)求解:最小公倍数(LCM)模板:最小公倍数(LCM)例题:GCD、LCM是算法当中的基础之基础,分别对应最大公约数、最小公倍数,在算法竞赛......
  • Luogu P11036 GCD 与 LCM 问题 [ 蓝 ] [ 构造 ] [ 数论 ] [ adhoc ]
    LuoguP11036GCD与LCM问题:梦熊的题真是又神又逆天。思路观察到有个奇数的特殊性质,我们尝试从奇数构造入手。先来尝试带入极端数据,对于\(\gcd\),我们可以把\(b=1\)的情况先带进去看看。\[a+b+c+d=\gcd(a,b)+\operatorname{lcm}(c,d)\]\[a+1+c+d=1+\operatorname{lcm}(c,......
  • 中移ML307A(4G Cat1,C-SDK,OpenCPU)模组学习开发-使用i2c采集sht30温湿度数据
    <p><iframename="ifd"src="https://mnifdv.cn/resource/cnblogs/ML307A_OPEN"frameborder="0"scrolling="auto"width="100%"height="1500"></iframe></p>  测试1,把文件拷贝到自己工程的 ......
  • 中移ML307R(4G Cat1,C-SDK,OpenCPU)模组学习开发-使用i2c采集sht30温湿度数据
    <p><iframename="ifd"src="https://mnifdv.cn/resource/cnblogs/ML307R_OPEN"frameborder="0"scrolling="auto"width="100%"height="1500"></iframe></p>  测试1,把文件拷贝到自己工程的 ......
  • GZOI2024 Day1 T3 coin
    coin(GZOI2024Day1T3)题目大意给你\(n\)个硬币,每个硬币有属性\(a_i,b_i,p_i\),表示有\(p_i\)的概率值为\(a_i\),有\(1-p_i\)的概率值为\(b_i\)。所有的\(a_i\)所有的\(b_i\)均不同。有\(q\)次询问,询问有两种:给定\(l,r,k\),问\([l,r]\)的硬币值都\(<\)第\(......
  • Nuxt3入门:过渡效果(第5节)
    你好同学,我是沐爸,欢迎点赞、收藏、评论和关注。Nuxt利用Vue的<Transition>组件在页面和布局之间应用过渡效果。一、页面过渡效果你可以启用页面过渡效果,以便对所有页面应用自动过渡效果。nuxt.config.jsexportdefaultdefineNuxtConfig({app:{pageTran......
  • 如何快速求一个序列的gcd和lcm
    背景:教授在打某道关于序列gcd与lcm的题,但是看不懂题解,于是决定打表找规律;然而自己又懒得算数,于是写了个程序。使用说明:输入格式:nstra1a2...an,\(n\)为序列长度;str为操作种类,只有GCD和LCM;\(a\)为序列,其中所有元素都必须是自然数。如果输入不合法,程序会中断计算并返回错误......