[HAOI 2011]向量
Description
给你一对数 \(a,b\) ,你可以任意使用 \((a,b), (a,-b), (-a,b), (-a,-b), (b,a), (b,-a), (-b,a), (-b,-a)\) 这些向量,问你能不能拼出另一个向量 \((x,y)\) 。
多组数据,数据组数 \(t\) , \(1\leq t\leq 50000\)
Solution
容易发现这题就只有以下几种操作:
- 给 \(x\pm p\cdot 2a\pm q\cdot 2b\) ,其中 \(p,q\in\mathbb{Z}\) ;
 - 给 \(y\pm p\cdot 2a\pm q\cdot 2b\) ,其中 \(p,q\in\mathbb{Z}\) ;
 - 给 \((x,y)+p\cdot(a,b)+q\cdot(b,a)\) ,其中 \(p,q\in\{0,1\}\)
 
用扩展欧几里得的那套理论乱搞就好了。
我还是太菜了啊,一开始写了个大讨论,发现不好写,看了学弟的博客才会...被学弟爆踩。
Code
//It is made by Awson on 2018.2.7
#include <bits/stdc++.h>
#define LL long long
#define dob complex<double>
#define Abs(a) ((a) < 0 ? (-(a)) : (a))
#define Max(a, b) ((a) > (b) ? (a) : (b))
#define Min(a, b) ((a) < (b) ? (a) : (b))
#define Swap(a, b) ((a) ^= (b), (b) ^= (a), (a) ^= (b))
#define writeln(x) (write(x), putchar('\n'))
#define lowbit(x) ((x)&(-(x)))
using namespace std;
void read(LL &x) {
    char ch; bool flag = 0;
    for (ch = getchar(); !isdigit(ch) && ((flag |= (ch == '-')) || 1); ch = getchar());
    for (x = 0; isdigit(ch); x = (x<<1)+(x<<3)+ch-48, ch = getchar());
    x *= 1-2*flag;
}
void print(int x) {if (x > 9) print(x/10); putchar(x%10+48); }
void write(int x) {if (x < 0) putchar('-'); print(Abs(x)); }
LL a, b, x, y, t, g;
LL gcd(LL a, LL b) {return b ? gcd(b, a%b) : a; }
bool check(LL a, LL b) {return a%g == 0 && b%g == 0; }
void work() {
    read(t);
    while (t--) {
        read(a), read(b), read(x), read(y);
        g = gcd(a*2, b*2);
        if (check(x, y) || check(x+a, y+b) || check(x+b, y+a) || check(x+a+b, y+a+b)) puts("Y");
        else puts("N");
    }
}
int main() {
    work(); return 0;
}												
											[HAOI 2011]向量的更多相关文章
- [BZOJ 2299][HAOI 2011]向量  题解(裴蜀定理)
		
[BZOJ 2299][HAOI 2011]向量 Description 给你一对数a,b,你可以任意使用(a,b), (a,-b), (-a,b), (-a,-b), (b,a), (b,-a), ...
 - [BZOJ 2301] [HAOI 2011] Problem b (莫比乌斯反演)(有证明)
		
[BZOJ 2301] [HAOI 2011] Problem b (莫比乌斯反演)(有证明) 题面 T组询问,每次给出a,b,c,d,k,求\(\sum _{i=a}^b\sum _{j=c}^d[ ...
 - 【BZOJ 2301】【HAOI 2011】Problem b
		
今天才知道莫比乌斯反演还可以这样:$$F(n)=\sum_{n|d}f(d) \Rightarrow f(n)=\sum_{n|d}\mu(\frac{d}{n})F(d)$$我好弱,,,对于$$F( ...
 - 数学(莫比乌斯反演):HAOI 2011 问题B
		
题目描述: 对于给出的n个询问,每次求有多少个数对(x,y),满足a≤x≤b,c≤y≤d,且gcd(x,y) = k,gcd(x,y)函数为x和y的最大公约数. 输入格式: 第一行一个整数n,接下来n ...
 - [HAOI 2011]Problem b
		
Description 对于给出的n个询问,每次求有多少个数对(x,y),满足a≤x≤b,c≤y≤d,且gcd(x,y) = k,gcd(x,y)函数为x和y的最大公约数. Input 第一行一个整数 ...
 - [HAOI 2011]Problem c
		
Description 给n个人安排座位,先给每个人一个1~n的编号,设第i个人的编号为ai(不同人的编号可以相同),接着从第一个人开始,大家依次入座,第i个人来了以后尝试坐到ai,如果ai被占据了, ...
 - [HAOI 2011] Problem A
		
[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=2298 [算法] 考虑用总人数 - 最多人说真话 显然 , 对于每个人 , 如果他说的 ...
 - Mobius 反演
		
上次看莫比乌斯繁衍反演是一个月前,讲道理没怎么看懂.. 然后出去跪了二十天, 然后今天又开始看发现其实并不难理解 开个这个仅记录一下写过的题. HAOI 2011 B 这应该是莫比乌斯反演的模 ...
 - Deep Learning In NLP 神经网络与词向量
		
0. 词向量是什么 自然语言理解的问题要转化为机器学习的问题,第一步肯定是要找一种方法把这些符号数学化. NLP 中最直观,也是到目前为止最常用的词表示方法是 One-hot Representati ...
 
随机推荐
- LeetCode-391. 完美矩形(使用C语言编译,详解)
			
链接:https://leetcode-cn.com/problems/perfect-rectangle/description/ 题目 我们有 N 个与坐标轴对齐的矩形, 其中 N > 0, ...
 - Git简单图文教程
			
环境: Windows [版本 10.0.15063]64位 Git-2.14.1 64位[下载] TortoiseGit-2.5.0.0 64位[下载],这是一个Git 客户端,外号"乌龟 ...
 - 乘法表(24.9.2017)  (WARNING!!!!!!!!!!!)
			
#include "stdio.h" main() { int i,j,result; printf("\n"); ;i<;i++) { ;j<;j ...
 - Linux学习--线程控制
			
关于线程控制,主要就是几个模块,我们一个一个消灭.消化: 一.线程创建: 1.先来看看在Linux环境下的线程创建函数: 分析:意思很明显: 1.函数名是 pthread_create : 2.功能 ...
 - AWS EMR上搭建HBase环境
			
0. 概述 AWS的EMR服务为客户提供的托管 Hadoop 框架可以让您轻松.快 速.经济高效地在多个动态可扩展的 Amazon EC2 实例之间分发和处理 大量数据.您还可以运行其他常用的分发框架 ...
 - Linux下关闭Tomcat残留线程
			
ps -ef | grep tomcat kill -9 {pid}
 - Python 简单聊天室
			
#coding=utf-8 from socket import * from threading import Thread import time udpSocket = socket(AF_IN ...
 - 一个诚实的孩纸选Python的原因
			
我之所以会选择python语言程序设计这门课,是因为我一开始预选选的选修课都没选上,然后在补选的时候,在别人选剩的课里面选择了python. 上了两节课之后,我发现python还挺有意思的,挺喜欢py ...
 - token 验证
			
组件: https://jwt.io/#libraries-io
 - 复习上学期的HTML+CSS(1)
			
自己跟着网上教程复习上学期的HTML+CSS,因为已经忘得差不多了,而且现在学的js也要以HTML+CSS为基础,坚持每天持续更新. n B/S 网络结构 Browser/Server 浏览器/ ...