传送门
通过一段大力分析,我们发现其实转化成了
x,y +-2a || +-2b || +a,+b || +b,+a 其中,后两个操作分别最多进行一次(因为多了过后就可以转化成前两种操作)
此时我们可以联想到裴蜀定理:若a,b是整数,且gcd(a,b)=d,那么对于任意的整数x,y,ax+by都一定是d的倍数
也就是说,**必须当d|x,d|y的时候,x,y才能被2a,2b构造出来
当然,我们还要判断(x+a,y+b),(x+b,y+a),(x+a+b,y+b+a),因为还有后两种操作
//需要开longlong #include<bits/stdc++.h> #define ll long long using namespace std; int T; ll d; inline ll gcd(ll x,ll y), { if(y==0) return x; else return gcd(y,x%y); } inline bool check(ll u,ll v) { if(u%d==0&&v%d==0) return true; else return false; } int main() { cin>>T; for(int i=1;i<=T;i++) { ll a,b,x,y; cin>>a>>b>>x>>y; d=gcd(2*a,2*b); if(check(x,y)||check(x+a,y+b)||check(x+b,y+a)||check(x+a+b,y+b+a)) puts("Y"); else puts("N"); } return 0; }转载于:https://www.cnblogs.com/Patrickpwq/articles/9652979.html
相关资源:各显卡算力对照表!