靠瞎猜的数学题

首先我们先对这些向量进行一顿组合,会发现\((a,b)(a,-b)\)可以组合成\((2a,0)\),\((b,-a)(b,a)\)可以组合成\((2b,0)\),同理\((0,2a)\)和\((0,2b)\)自然也是可以组合成的

这个\(0\)很有用,可以只对一项考虑

所以如果这个时候有\(2ax+2by=X\),\(2ax+2by=Y\),就可以满足了

根据贝祖定理如果\((2a,2b)|X\)且\((2a,2b)|Y\)那么这个时候就满足了

之后还有一些情况

  1. 加上一个\((a,b)\),变成\(2ax+2by=X+a\)和\(2ax+2by=Y+b\)

  2. 加上一个\((b,a)\),变成\(2ax+2by=X+b\)和\(2ax+2by=Y+a\)

  3. \((a,b)\)和\((b,a)\)都加上,变成\(2ax+2by=X+a+b\)和\(2ax+2by=Y+a+b\)

还是分别套用贝祖定理就可以解决了

代码

#include<iostream>
#include<cstring>
#include<cstdio>
#define max(a,b) ((a)>(b)?(a):(b))
#define LL long long
#define re register
LL gcd(LL a,LL b)
{
if(!b) return a;
return gcd(b,a%b);
}
inline LL read()
{
char c=getchar();
LL x=0,r=1;
while(c<'0'||c>'9')
{
if(c=='-') r=-1;
c=getchar();
}
while(c>='0'&&c<='9')
x=(x<<3)+(x<<1)+c-48,c=getchar();
return x;
}
int T;
LL a,b,x,y,now;
int main()
{
T=read();
while(T--)
{
a=read(),b=read(),x=read(),y=read();
if(!a&&!b)
{
if(!x&&!y) puts("Y");
else puts("N");
continue;
}
if(!a||!b)
{
if(x%max(a,b)==0&&y%max(a,b)==0) puts("Y");
else puts("N");
continue;
}
now=gcd(2*a,2*b);
if(x%now==0&&y%now==0) puts("Y");
else if((x+a)%now==0&&(y+b)%now==0) puts("Y");
else if((x+b)%now==0&&(y+a)%now==0) puts("Y");
else if((x+a+b)%now==0&&(y+a+b)%now==0) puts("Y");
else puts("N");
}
return 0;
}

最新文章

  1. react+redux教程(六)redux服务端渲染流程
  2. LintCode Subarray Sum
  3. VS2015 安装mvc4安装包以及vs2010 sp1后导致Razor语法失效代码不高亮(能正常运行)/视图页面无法智能提示(.cshtml)解决办法
  4. vagrant系列教程(四):vagrant搭建redis与redis的监控程序redis-stat(转)
  5. 手动开启/关闭Oracle数据库
  6. windows下搭建学习objective-c 的运行环境【转载】
  7. [SQL]SQL删除数据的各种方式总结
  8. UVALive 7077 - Song Jiang&#39;s rank list(模拟)
  9. QAQ高精度模板笔记√
  10. 代码:Masonry 第三方框架
  11. Caused by: java.lang.NoClassDefFoundError: org/springframework/web/context/WebApplicationContext
  12. echarts 移动端地图数据可视化教程
  13. .NET Core中使用AutoMapper
  14. mysql 设置允许重试,批量更新
  15. 时频工具箱tftb
  16. Spring Cloud(Dalston.SR5)--Zuul 网关-路由配置
  17. C++中模板的使用
  18. response的contentType的类型值Response.ContentType
  19. Delphi 如何访问监控摄像头?
  20. liunx 随笔集

热门文章

  1. Layui 好用的弹出框
  2. Cheatsheet: 2017 06.01 ~ 06.30
  3. 判断php变量是否定义,是否为空,是否为真的一览表
  4. 运行javac编译报错:仅当显式请求注释处理时才接受类名称“xxxxxx”
  5. csu 1365 双向链表模拟超时
  6. NodeJS中resolve添加地址无效
  7. Django请求生命周期之响应内容
  8. Vue组件通讯
  9. SQL-字符串运算符和函数
  10. Function Object in C++