D. X-Magic Pair(辗转相除)
创始人
2024-03-03 18:42:57
0

Problem - 1612D - Codeforces

 

给你一对整数(a,b)和一个整数x。

你可以用两种不同的方式改变这对整数。

设置(分配)a:=|a-b|。
设置(分配)b:=|a-b|。
其中|a-b|是a和b之间的绝对差值。
如果只用给定的操作就能得到a或b,那么这对(a,b)就被称为x-magic(即,如果经过一定数量的操作后a=x或b=x,这对(a,b)就是x-magic)。你可以应用任何次数的操作(甚至是零)。

你的任务是找出这对(a,b)是否是x-magic。

你必须回答t个独立的测试案例。

输入
输入的第一行包含一个整数t(1≤t≤104)--测试案例的数量。接下来的t行描述测试用例。

测试用例的唯一一行包含三个整数a,b和x(1≤a,b,x≤1018)。

输出
对于第i个测试案例,如果相应的一对(a,b)是x-magic,则打印YES,否则打印NO。

例子
输入复制
8
6 9 3
15 38 7
18 8 8
30 30 30
40 50 90
24 28 20
365 216 52
537037812705867558 338887693834423551 3199921013340
输出拷贝

是的


没有


题解:
有一个结论,如果一个永远是一个大的数减一个小的数,得到的数都会出现

但是一直相减时间复杂度太大,所以我们选择相除,

如果此时a%b == x%b 并且a >= x说明,x一定可以出现

否则a = a%b,直到a或b等于0

 

#include
#include
#include
#include
#include
#include
#include
using namespace std;
#define int long long
int a,b,x;
void solve()
{cin >> a >> b >>x;while(a&&b){if(a < b)swap(a,b);if(a%b == x%b &&a >= x){cout<<"YES\n";return;}a = a%b;} cout<<"NO\n";
}
signed main()
{
//	ios::sync_with_stdio(false);
//	cin.tie(0);
//	cout.tie(0);int t = 1;cin >> t;while(t--){solve();}
}//1 10 11//001
//010
//011
//100

相关内容

热门资讯

保存时出现了1个错误,导致这篇... 当保存文章时出现错误时,可以通过以下步骤解决问题:查看错误信息:查看错误提示信息可以帮助我们了解具体...
汇川伺服电机位置控制模式参数配... 1. 基本控制参数设置 1)设置位置控制模式   2)绝对值位置线性模...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
本地主机上的图像未显示 问题描述:在本地主机上显示图像时,图像未能正常显示。解决方法:以下是一些可能的解决方法,具体取决于问...
不一致的条件格式 要解决不一致的条件格式问题,可以按照以下步骤进行:确定条件格式的规则:首先,需要明确条件格式的规则是...
表格列调整大小出现问题 问题描述:表格列调整大小出现问题,无法正常调整列宽。解决方法:检查表格的布局方式是否正确。确保表格使...
表格中数据未显示 当表格中的数据未显示时,可能是由于以下几个原因导致的:HTML代码问题:检查表格的HTML代码是否正...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...