码迷,mamicode.com
首页 > 其他好文 > 详细

bzoj2299[HAOI2011]向量

时间:2016-07-24 20:49:33      阅读:202      评论:0      收藏:0      [点我收藏+]

标签:

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

bzoj2299[HAOI2011]向量

标签:

原文地址:http://www.cnblogs.com/YuanZiming/p/5701473.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!