靠瞎猜的数学题

首先我们先对这些向量进行一顿组合,会发现\((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;
}

【[HAOI2011]向量】的更多相关文章

  1. 【BZOJ2299】[HAOI2011]向量(数论)

    [BZOJ2299][HAOI2011]向量(数论) 题面 BZOJ 洛谷 题解 首先如果我们的向量的系数假装可以是负数,那么不难发现真正有用的向量只有\(4\)个,我们把它列出来.\((a,b)(a ...

  2. 【BZOJ 2299】 2299: [HAOI2011]向量 (乱搞)

    2299: [HAOI2011]向量 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 1255  Solved: 575 Description 给你一 ...

  3. P2520 [HAOI2011]向量

    题目描述 给你一对数a,b,你可以任意使用(a,b), (a,-b), (-a,b), (-a,-b), (b,a), (b,-a), (-b,a), (-b,-a)这些向量,问你能不能拼出另一个向量 ...

  4. [HAOI2011]向量

    题目描述 给你一对数a,b,你可以任意使用(a,b), (a,-b), (-a,b), (-a,-b), (b,a), (b,-a), (-b,a), (-b,-a)这些向量,问你能不能拼出另一个向量 ...

  5. BZOJ2299 [HAOI2011]向量 【裴蜀定理】

    题目链接 BZOJ2299 题解 题意就是给我们四个方向的向量\((a,b),(b,a),(-a,b),(b,-a)\),求能否凑出\((x,y)\) 显然我们就可以得到一对四元方程组,用裴蜀定理判断 ...

  6. 牛客19985 HAOI2011向量(裴属定理,gcd)

    https://ac.nowcoder.com/acm/problem/19985 看到标签“裴属定理”就来做下,很眼熟,好像小学奥数学过.. 题意:给你a,b,x,y,你可以任意使用(a,b), ( ...

  7. [HAOI2011] 向量 - 裴蜀定理

    给你一对数a,b,你可以任意使用(a,b), (a,-b), (-a,b), (-a,-b), (b,a), (b,-a), (-b,a), (-b,-a)这些向量,问你能不能拼出另一个向量(x,y) ...

  8. BZOJ2299: [HAOI2011]向量

    题目:http://www.lydsy.com/JudgeOnline/problem.php?id=2299 题解:乱搞就可以了... 不妨认为有用的只有(a,b)(a,-b)(b,a)(b,-a) ...

  9. luogu P2520 [HAOI2011]向量

    传送门 一堆人说数论只会gcd,我连gcd都不会,菜死算了qwq Orzyyb 这题欺负我数学不好qwq 首先可以发现实际上有如下操作:x或y±2a,x或y±2b,x+a y+b,x+b y+a(后面 ...

随机推荐

  1. C# 配置文件操作类

    注意添加引用:System.Configuration: using System; using System.Collections.Generic; using System.Text; usin ...

  2. 十三、curator recipes之SharedCounter

    简介 我们可以通过curator实现对一个分布式环境下共享变量的访问,zookeeper将共享变量维护在同一个路径下. 官方文档:http://curator.apache.org/curator-r ...

  3. Z_Tree的使用案例(出差地点的演示)

    1.准备工作(下载zTree并添加到项目JS中) 2.HTML代码 <link rel="stylesheet" href="./js/zTree_v3-3.5.2 ...

  4. java一些对象概念扫盲帖(DO VO DTO PO)

    资料来源:http://virusswb.blog.51cto.com/115214/458636 BO:Business Object,业务对象.主要是承载业务数据的实体.处理业务逻辑的时候使用,数 ...

  5. java核心技术-IO

    一 .IO 1.1 流的简单介绍和分类 Java流操作的相关的类和接口: Java流类图结构: 四个抽象基类分别为:InputStream .OutputStream .Reader .Writer: ...

  6. Runtime 打开记事本

    package com.direct.str; import java.io.IOException; public class RunTimeDemo { /** * @param args */ ...

  7. 浅谈ul布局以及table布局

    我个人对于某些言论说要注重html语义化在布局中的应用,我反而不怎么感冒,试试兼容IE7&&项目期相对较赶的情况下,我还是推荐快速开发为主,兼容性强为主. 如果布局中需要用户边框,推荐 ...

  8. UOJ#172. 【WC2016】论战捆竹竿

    传送门 首先这个题目显然就是先求出所有的 \(border\),问题转化成一个可行性背包的问题 一个方法就是同余类最短路,裸跑 \(30\) 分,加优化 \(50\) 分 首先有个性质 \(borde ...

  9. cf1056B. Divide Candies(数论 剩余系)

    题意 题目链接 求满足\(i^2 + j^2 \% M = 0\)的数对\((i, j)\)的个数,\(1 \leqslant i, j \leqslant 10^9, M \leqslant 100 ...

  10. js中变量声明有var和没有var的区别

    转js中var用与不用的区别 2015年07月13日 16:08:22 阅读数:3627 Javascript声明变量的时候,虽然用var关键字声明和不用关键字声明,很多时候运行并没有问题,但是这两种 ...