【HAOI2011】ベクター - シュウペイ定理

あなたの数字のペアを与えるために、B、あなたがいずれかを使用することができます(a、b)は、(、-b)、(-a、b)は、(-a、-b)、(B)、(B、あなたは別のベクトル(x、y)を綴ることができる場合-a)、(-b、)、(-b、-a)これらのベクター、お願いします。

解決

操作の次のセットに相当

  • \(X \午後2aと\)

  • \(と\午後2位\)

  • \(X \午後2bと\)

  • \(と\午後2bと\)

  • \(X +、Y + B \)

  • \(X + B、Y + \)

\(A = 2A、B = 2B、D =(A、B)\)


\(IA + JB = X \
) と
\(IA + JB = yが\ ) 溶液を持たなければなりません

ペイ・シュー定理
\((b)は= D \ RIGHTARROW D | \ \ \ FORALL X、Yによって斧+)

最初のペアを調整することを望むかもしれない\(D \) その後、剰余を(I、J \)\値のみをすることができ(0 \)\それを再度テストします、

#include <bits/stdc++.h>
using namespace std;

int a,b,x,y;

int main() {
    int t;
    cin>>t;
    while(t--) {
        cin>>a>>b>>x>>y;
        int d=__gcd(a,b)*2;
        a%=d;b%=d;x%=d;y%=d;
        if((x%d==0 && y%d==0) ||
           ((x+a)%d==0 && (y+b)%d==0) ||
           ((x+b)%d==0 && (y+a)%d==0) ||
           ((x+a+b)%d==0 && (y+b+a)%d==0))
            puts("Y");
        else puts("N");
    }
}

おすすめ

転載: www.cnblogs.com/mollnn/p/12301058.html