• [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;
    } 
    
  • 相关阅读:
    C#连接db2数据库
    SSIS 查找 组件
    Winfrom控件 特效
    Highcharts中文帮助文档
    winform常用控件介绍
    Sql 语句常语法
    SQL经典语句大全
    SharePoint资料
    wcf编程资料
    CrystalDecisions.Windows.Forms文件
  • 原文地址:https://www.cnblogs.com/zi-nai-boboyang/p/11437809.html
Copyright © 2020-2023  润新知