Gcd 2023牛客暑期多校训练营6 G

登录---专业IT笔试面试备考平台_牛客网

题目大意:给出一个集合,集合中初始有2个数x,y(x!=y),每次操作可以将集合中任意两个不等的数的差放入集合或者将两个不等的数的gcd放入集合,给出一个数z,问z有没有可能出现在集合里

1<=t<=1e5;0<x,y,z<=1e9

思路:不妨令x>y,因为我们可以得到x,y的最大公因数,然后我们可以用x不断减去最大公因数就能得到小于x的所有是gcd的倍数的数,但因为两个相间的数不能相等,所以如果初始两个数中没有0就得不到0,然后用1倍gcd减二倍gcd就能得到负一倍的gcd,再用y-负数就能得到所有大于y的gcd的倍数,所以只要z不等于0且z是gcd的倍数,就能输出YES

cpp 复制代码
//#include<__msvc_all_public_headers.hpp>
#include<bits/stdc++.h>
using namespace std;
int gcd(int a, int b)
{
	return b ? gcd(b, a % b) : a;
}
int main()
{
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	int t;
	cin >> t;
	while (t--)
	{
		int x, y, z;
		cin >> x >> y >> z;
		int gc = gcd(x, y);
		if (z == 0 && x != 0 && y != 0)
		{//z等于0且x,y里面没有0
			cout << "NO" << endl;
			continue;
		}
		if (z % gc == 0)
		{
			cout << "YES" << endl;
		}
		else
		{
			cout << "NO" << endl;
		}
	}
	return 0;
}
相关推荐
持续学习的程序员+11 分钟前
部分离线强化学习相关的算法总结(td3+bc/conrft)
算法
Rui_Freely2 分钟前
Vins-Fusion之 SFM 滑窗内相机位姿及特征点3D估计(十三)
人工智能·算法·计算机视觉
李泽辉_3 分钟前
深度学习算法学习(六):深度学习-处理文本:神经网络处理文本、Embedding层
深度学习·学习·算法
Howrun7775 分钟前
虚幻引擎_用户小控件_准星
c++·游戏引擎·虚幻
CoderCodingNo6 分钟前
【GESP】C++六级考试大纲知识点梳理, (1) 树的概念与遍历
开发语言·c++
Codeking__15 分钟前
Redis的value类型及编码方式介绍——hash
redis·算法·哈希算法
星火开发设计16 分钟前
C++ multimap 全面解析与实战指南
java·开发语言·数据结构·c++·学习·知识
u01040583617 分钟前
企业微信通讯录同步服务的增量更新与冲突解决算法
算法·企业微信
码农水水20 分钟前
阿里Java面试被问:RocketMQ的消息轨迹追踪实现
java·开发语言·windows·算法·面试·rocketmq·java-rocketmq
智驱力人工智能23 分钟前
矿场轨道异物AI监测系统 构建矿山运输安全的智能感知防线 轨道异物检测 基于YOLO的轨道异物识别算法 地铁隧道轨道异物实时预警技术
人工智能·opencv·算法·安全·yolo·边缘计算