Educational Codeforces Round 117

发布时间 2023-08-29 17:23:19作者: gan_coder

今天终于是4题了
这场似乎是手速场

A直接枚举一下就行,懒得想了
B暴力放
C怎么又是二分
D刚开始没什么思路,想着写个暴力,发现还挺快的
但是遇到相差很大就会寄
但是中间都是大的减小的
a-bk=x 只要检查这些是否成立即可
复杂度跟求gcd一样

#include<algorithm>
#include<cstdio>
#include<cstring>
#include<set>
#include<queue>
#include<cmath>
#include<unordered_map>
#include<map>
#define fo(i,a,b) for (int (i)=(a);(i)<=(b);(i)++)
#define fd(i,b,a) for (int (i)=(b);(i)>=(a);(i)--)
#define mk(x,y) make_pair((x),(y))
#define mm(x,y,z) make_pair(make_pair((x),(y)),(z))
#define lc (o<<1)
#define rc ((o<<1)|1)
#define A puts("YES")
#define B puts("NO")

using namespace std;
typedef double db;
typedef long long ll;
const int N=105;
ll x,a,b;
bool flag;
void f(ll a,ll b){
	
	if (flag) return;
	if (a<b) swap(a,b);
	if (a<x) return;
	
	if (a==x || b==x) {
		flag=1;
		return;
	}
	
	if (!b) return;
	if ((a-x)%b==0) {
		flag=1;
		return;
	}
	a%=b;
	
	f(a,b);
}
int main() {

//    freopen("data.in","r",stdin);

   	int T;
   	scanf("%d",&T);
   	while (T--){

   		flag=0;
   		scanf("%lld %lld %lld",&a,&b,&x);
   		
   		f(a,b);
   		if (flag) A;
   		else B;
	}
   	
  	
	return 0;
}  

 

期望不怎么会,提前下班。