zoukankan      html  css  js  c++  java
  • [HAOI2011]向量

    因为(a,b)与(-a,-b)完全相反,只能择其一。

    所以只有这几种运算(a,b)(a,-b)(b,a)(b,-a)

    (-a,-b)(-a,b)(-b,a)(b,a)[当然,题目中讲了。。。。]

    把他们组合起来,就只有这四种运算

    xi或yi +/-2*a;

    xi或yi +/-2*b;

    xi+a, yi+b

    xi+b, yi+a

    (xi,yi从0往上加,加到x,y

    就不存在-a,-b-b,-a这两种情

    况了,同时,通过观察可得,

    第3、4种运算,至多运行一次,

    因为运行两次,就会变成第1、

    2种运算。)

    //MADE BY BOBOYANG
    #include <cstdio>
    long long scaff()
    {
     long long number=0;
     int f=1;
     char ch;
     ch=getchar();
     if(ch=='-'){f=-1;ch=getchar();}
     while(ch<'0'||ch>'9')
        ch=getchar();
     while(ch>='0'&&ch<='9')
     {
     	number=(number<<1)+(number<<3)+ch-'0';
         ch=getchar();
     }
     return number*f;
    }
    long long a,b,x,y;
    long long d;
    long long t;
    long long gcd(long long a2,long long b2)
    {return b2==0?a2:gcd(b2,a2%b2);}
    bool iamsosad(long long  ai,long long bi,long long xi,long long yi)
    {
     d=gcd(ai*2,bi*2);
     if(xi%d==0&&yi%d==0)return 1;
     if((xi+ai)%d==0&&(yi+bi)%d==0)return 1;
     if((xi+bi)%d==0&&(yi+ai)%d==0)return 1;
     if((xi+ai+bi)%d==0&&(yi+ai+bi)%d==0)return 1;
     return 0;
    }
    int main(void)
    {
     t=scaff();
     while(t--)
     {
          a=scaff();
          b=scaff();
          x=scaff();
          y=scaff();
     	 bool flag=iamsosad(a,b,x,y);
     	 if(flag)puts("Y");
     	 else puts("N");
     }
     return 0;
    } 
    
  • 相关阅读:
    _I、_O、_IO的含义
    ARM启动代码中_main 与用户主程序main()的区别
    ARM汇编程序中的伪指令
    oracle密码过期问题
    等待界面-调转页面前button篇
    等待效果
    winfrom中Application.Restart()
    自动刷新处理
    泛微E8二次开发
    我的菜园子
  • 原文地址:https://www.cnblogs.com/zi-nai-boboyang/p/11437809.html
Copyright © 2011-2022 走看看