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

相关内容

热门资讯

AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
AWR报告解读 WORKLOAD REPOSITORY PDB report (PDB snapshots) AW...
AWS管理控制台菜单和权限 要在AWS管理控制台中创建菜单和权限,您可以使用AWS Identity and Access Ma...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
群晖外网访问终极解决方法:IP... 写在前面的话 受够了群晖的quickconnet的小水管了,急需一个新的解决方法&#x...
​ToDesk 远程工具安装及... 目录 前言 ToDesk 优势 ToDesk 下载安装 ToDesk 功能展示 文件传输 设备链接 ...
Azure构建流程(Power... 这可能是由于配置错误导致的问题。请检查构建流程任务中的“发布构建制品”步骤,确保正确配置了“Arti...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...