【题目描述】

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

说明:这里的拼就是使得你选出的向量之和为(x,y)

【输入格式】

第一行数组组数t,(t<=50000)

接下来t行每行四个整数a,b,x,y (-2*10^9<=a,b,x,y<=2*10^9)

【输出格式】

t行每行为Y或者为N,分别表示可以拼出来,不能拼出来

【分析】

我们看到这8个向量,很明显,在这些向量之中,有些是可以通过乘以-1来相互抵消的,所以现在我们只需要分析(a,b),(-a,b),(b,a),(-b,a)这四个就可以了。

我们设这四个向量的系数分别为x1,x2,x3,x4

设A1=X1-X2,B1=X3-X4,A2=X1+X2,B2=X3+X4,我们知道,一个不定方程ax+by=c有整数解的条件是c mod gcd(a,b)=0,通过这个性质,我们能够轻易判断出方程组中任意一个不定方程是否有整数解的x1,x2,x3,x4,然而问题就在于,一个方程有整数解是否能代表整个方程组有整数解呢?显然不是,假设这两个方程都有整数解,那么有2*x1=A1+A2,然而整数的A1与A2并不能保证x1有整数解。

想要x1是整数,很简单,只要A1+A2是偶数就行了,有2*x1=2*(A1/2+A2/2)。

在判断一次在不同的奇偶性下是否有解就可以了。

 #include <cstdlib>
#include <iostream>
#include <cmath>
#include <queue>
#include <cstring>
#include <cstdio>
long long d;
long long gcd(long long a,long long b) {return b==?a:gcd(b,a%b);}
bool check(long long a,long long b) {return (a%d==)&&(b%d==);}
int main()
{
long long zu,a,b,x,y;
//文件操作
freopen("vector.in","r",stdin);
freopen("vector.out","w",stdout);
scanf("%lld",&zu);
while (zu--)
{
scanf("%lld%lld%lld%lld",&a,&b,&x,&y);
//先判断是否有解 d=gcd(a,b)*;
if(check(x,y)||check(x-a,y-b)||check(x-b,y-a)||check(x-a-b,y-a-b)) printf("Y\n");
else printf("N\n");
}
return ;
}

【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. 【[HAOI2011]向量】

    靠瞎猜的数学题 首先我们先对这些向量进行一顿组合,会发现\((a,b)(a,-b)\)可以组合成\((2a,0)\),\((b,-a)(b,a)\)可以组合成\((2b,0)\),同理\((0,2a) ...

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

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

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

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

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

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

  9. BZOJ2299: [HAOI2011]向量

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

  10. luogu P2520 [HAOI2011]向量

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

随机推荐

  1. Gvim各种插件配置(windows环境下)

    1.Vundle插件:https://github.com/gmarik/Vundle.vim 用于管理Vim插件,安装此插件需要系统中已安装git,参考链接:Git for Windows安装和基本 ...

  2. Linux Kernel 空指针逆向引用拒绝服务漏洞

    漏洞名称: Linux Kernel 空指针逆向引用拒绝服务漏洞 CNNVD编号: CNNVD-201306-449 发布时间: 2013-07-01 更新时间: 2013-07-01 危害等级:   ...

  3. (转载)在Linux下删除文件行末尾的^M符号方法

    (转载)http://www.xinfengit.com/200907/1433646.html 由于DOS下的编辑器和linux(linux教程 linux培训 )编辑器对文件行末的回车符处理不一致 ...

  4. UVa1349 Optimal Bus Route Design(二分图最佳完美匹配)

    UVA - 1349 Optimal Bus Route Design Time Limit: 3000MS Memory Limit: Unknown 64bit IO Format: %lld & ...

  5. poj2255

    题目大意: 树恢复??树复原?? 小Valentine非常喜欢玩二叉树的游戏,他非常喜欢在二叉树的树根上随机的写上一下大写字母,这是她创造的一个例子: D / \ / \ B E / \ \ / \ ...

  6. Java 判断一段网络资源是否存在

    package cn.ycmedia.common.utils; import java.io.InputStream; import java.net.URL; import java.net.UR ...

  7. ubuntu firefox 选中变成了删除

    在ubuntu下 我的firefox浏览器出现了问题.描述: 1.在firefox中所有能够删除的文字只要选中就自动删除了. 终端中 ibus-setup勾掉在应用窗口中启用内嵌编辑模式

  8. Python入门基础教程(儿童版) [分享一本入门级教程]

    +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1. 推荐书名 No Starch--Python for ...

  9. Android RelativeLayout 布局android:layout_centerHorizontal="true"注意

    特别注意,如果要是 android:layout_alignTop="@id/bind_decode_item_layout" android:layout_centerHoriz ...

  10. 统计学习导论:基于R应用——第五章习题

    第五章习题 1. 我们主要用到下面三个公式: 根据上述公式,我们将式子化简为 对求导即可得到得到公式5-6. 2. (a) 1 - 1/n (b) 自助法是有有放回的,所以第二个的概率还是1 - 1/ ...