【[HAOI2011]向量】
靠瞎猜的数学题
首先我们先对这些向量进行一顿组合,会发现\((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\)那么这个时候就满足了
之后还有一些情况
加上一个\((a,b)\),变成\(2ax+2by=X+a\)和\(2ax+2by=Y+b\)
加上一个\((b,a)\),变成\(2ax+2by=X+b\)和\(2ax+2by=Y+a\)
\((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]向量】的更多相关文章
- 【BZOJ2299】[HAOI2011]向量(数论)
[BZOJ2299][HAOI2011]向量(数论) 题面 BZOJ 洛谷 题解 首先如果我们的向量的系数假装可以是负数,那么不难发现真正有用的向量只有\(4\)个,我们把它列出来.\((a,b)(a ...
- 【BZOJ 2299】 2299: [HAOI2011]向量 (乱搞)
2299: [HAOI2011]向量 Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 1255 Solved: 575 Description 给你一 ...
- P2520 [HAOI2011]向量
题目描述 给你一对数a,b,你可以任意使用(a,b), (a,-b), (-a,b), (-a,-b), (b,a), (b,-a), (-b,a), (-b,-a)这些向量,问你能不能拼出另一个向量 ...
- [HAOI2011]向量
题目描述 给你一对数a,b,你可以任意使用(a,b), (a,-b), (-a,b), (-a,-b), (b,a), (b,-a), (-b,a), (-b,-a)这些向量,问你能不能拼出另一个向量 ...
- BZOJ2299 [HAOI2011]向量 【裴蜀定理】
题目链接 BZOJ2299 题解 题意就是给我们四个方向的向量\((a,b),(b,a),(-a,b),(b,-a)\),求能否凑出\((x,y)\) 显然我们就可以得到一对四元方程组,用裴蜀定理判断 ...
- 牛客19985 HAOI2011向量(裴属定理,gcd)
https://ac.nowcoder.com/acm/problem/19985 看到标签“裴属定理”就来做下,很眼熟,好像小学奥数学过.. 题意:给你a,b,x,y,你可以任意使用(a,b), ( ...
- [HAOI2011] 向量 - 裴蜀定理
给你一对数a,b,你可以任意使用(a,b), (a,-b), (-a,b), (-a,-b), (b,a), (b,-a), (-b,a), (-b,-a)这些向量,问你能不能拼出另一个向量(x,y) ...
- BZOJ2299: [HAOI2011]向量
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=2299 题解:乱搞就可以了... 不妨认为有用的只有(a,b)(a,-b)(b,a)(b,-a) ...
- luogu P2520 [HAOI2011]向量
传送门 一堆人说数论只会gcd,我连gcd都不会,菜死算了qwq Orzyyb 这题欺负我数学不好qwq 首先可以发现实际上有如下操作:x或y±2a,x或y±2b,x+a y+b,x+b y+a(后面 ...
随机推荐
- C# 配置文件操作类
注意添加引用:System.Configuration: using System; using System.Collections.Generic; using System.Text; usin ...
- 十三、curator recipes之SharedCounter
简介 我们可以通过curator实现对一个分布式环境下共享变量的访问,zookeeper将共享变量维护在同一个路径下. 官方文档:http://curator.apache.org/curator-r ...
- Z_Tree的使用案例(出差地点的演示)
1.准备工作(下载zTree并添加到项目JS中) 2.HTML代码 <link rel="stylesheet" href="./js/zTree_v3-3.5.2 ...
- java一些对象概念扫盲帖(DO VO DTO PO)
资料来源:http://virusswb.blog.51cto.com/115214/458636 BO:Business Object,业务对象.主要是承载业务数据的实体.处理业务逻辑的时候使用,数 ...
- java核心技术-IO
一 .IO 1.1 流的简单介绍和分类 Java流操作的相关的类和接口: Java流类图结构: 四个抽象基类分别为:InputStream .OutputStream .Reader .Writer: ...
- Runtime 打开记事本
package com.direct.str; import java.io.IOException; public class RunTimeDemo { /** * @param args */ ...
- 浅谈ul布局以及table布局
我个人对于某些言论说要注重html语义化在布局中的应用,我反而不怎么感冒,试试兼容IE7&&项目期相对较赶的情况下,我还是推荐快速开发为主,兼容性强为主. 如果布局中需要用户边框,推荐 ...
- UOJ#172. 【WC2016】论战捆竹竿
传送门 首先这个题目显然就是先求出所有的 \(border\),问题转化成一个可行性背包的问题 一个方法就是同余类最短路,裸跑 \(30\) 分,加优化 \(50\) 分 首先有个性质 \(borde ...
- cf1056B. Divide Candies(数论 剩余系)
题意 题目链接 求满足\(i^2 + j^2 \% M = 0\)的数对\((i, j)\)的个数,\(1 \leqslant i, j \leqslant 10^9, M \leqslant 100 ...
- js中变量声明有var和没有var的区别
转js中var用与不用的区别 2015年07月13日 16:08:22 阅读数:3627 Javascript声明变量的时候,虽然用var关键字声明和不用关键字声明,很多时候运行并没有问题,但是这两种 ...