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

    bzoj2299[HAOI2011]向量

    题意:

    有(a,b), (a,-b), (-a,b), (-a,-b), (b,a), (b,-a), (-b,a), (-b,-a)这些向量,问能否拼出另一个向量(x,y)。

    题解:

    裴蜀定理(我不会)(实际上是与解同余方程的知识相关的)。题目可以转化为用(0,2a)、(2a,0)、(0,2b)、(2b,0)拼成(x,y)、(x+a,y+b)、(x+b,y+a)、(x+a+b,y+a+b)。这样就可以列方程了。题目要求判断方程是否有解,只要求出2a、2b的gcd,然后判断目标两个数能否整除这个gcd即可。

    代码:

     1 #include <cstdio>
     2 #include <cstring>
     3 #include <algorithm>
     4 using namespace std;
     5 
     6 long long gcd(long long a,long long b){return b==0?a:gcd(b,a%b);}
     7 inline bool check(long long x,long long y,long long z){return x%z==0&&y%z==0;}
     8 int main(){
     9     int t; scanf("%d",&t);
    10     while(t--){
    11         long long a,b,x,y; scanf("%lld%lld%lld%lld",&a,&b,&x,&y);
    12         long long c=gcd(2*a,2*b);
    13         if(check(x,y,c)||check(x+a,y+b,c)||check(x+b,y+a,c)||check(x+a+b,y+a+b,c))puts("Y");else puts("N");
    14     }
    15     return 0;
    16 }

    20160418

  • 相关阅读:
    dpdk优化相关 转
    常用的TCP Option
    c10k C10M
    Linux惊群效应详解
    bloomfilter 以及count min sketch
    Squid 搭建正向代理服务器
    Openflow的架构+源码剖析 转载
    Hyperscan与Snort的集成方案
    动态图
    psutil 模块
  • 原文地址:https://www.cnblogs.com/YuanZiming/p/5701473.html
Copyright © 2011-2022 走看看