10402: C.机器人

Time Limit: 2 Sec  Memory Limit: 128 MB Submit: 53  Solved: 19 [Submit][Status][Web Board]

Description

Dr. Kong 设计的机器人卡尔非常活泼,既能原地蹦,又能跳远。由于受软硬件设计所限,机器人卡尔只能定点跳远。若机器人站在(X,Y)位置,它可以原地蹦,但只可以在(X,Y),(X,-Y),(-X,Y),(-X,-Y),(Y,X),(Y,-X),(-Y,X),(-Y,-X)八个点跳来跳去。

现在,Dr. Kong想在机器人卡尔身上设计一个计数器,记录它蹦蹦跳跳的数字变化(S,T),即,路过的位置坐标值之和。

你能帮助Dr. Kong判断机器人能否蹦蹦跳跳,拼出数字(S,T)吗?

假设机器人卡尔初始站在(0,0)位置上。

Input

第一行:             K                表示有多少组测试数据。

接下来有K行,每行:X  Y  S  T

1≤K≤10000   -2*10<= X , Y, S, T <= 2*109

数据之间有一个空格。

Output

对于每组测试数据,输出一行:Y或者为N,分别表示可以拼出来,不能拼出来

Sample Input

3
2 1 3 3
1 1 0 1
1 0 -2 3

Sample Output

Y
N
Y

HINT

 

Source

第七届河南省赛

题解:机器人在一个区域内随便跳,记录坐标变化值;每给两组数据都有

(a1+a2)x + (a3+a4)y = s;  ---> Ax + By = s;
(a1-a2)y + (a3-a4)x = t;  ---> Cx + Dy = t;

由此可见A+C,和B+D都是偶数;所以给定Ax + By = s;Cx + Dy = t;

若有转换成立必定有A+D,和B+C都是偶数;所以转换为求两个方程式的解,解出x,y;也就是上面的A,B,C,D;然后判断有没有解;

代码:

#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<queue>
using namespace std;
#define SI(x) scanf("%d",&x)
#define mem(x,y) memset(x,y,sizeof(x))
#define PI(x) printf("%d",x)
#define P_ printf(" ")
const int INF=0x3f3f3f3f;
typedef long long LL;
LL ex_gcd(LL a,LL b,LL &x,LL &y){
if(!b){
x=1;
y=0;
return a;
}
LL d=ex_gcd(b,a%b,x,y);
LL temp=x;
x=y;
y=temp-a/b*y;
return d;
}
int main(){
int K;
LL X,Y,S,T;
SI(K);
while(K--){
scanf("%lld%lld%lld%lld",&X,&Y,&S,&T);
LL gcd,a,b,c,d;
gcd=ex_gcd(X,Y,a,b);
if(S%gcd!=0||T%gcd!=0){
puts("N");continue;
}
c=a*T/gcd;d=b*T/gcd;
a*=S/gcd;b*=S/gcd;
LL x1,y1,x2,y2;
int flot=0;
for(int t1=-2;t1<=2;t1++){
x1=a+Y/gcd*t1;y1=b-X/gcd*t1;
for(int t2=-2;t2<=2;t2++){
x2=c+Y/gcd*t2;y2=d-X/gcd*t2;
if((x1+y2)%2==0&&(x2+y1)%2==0)flot=1;
}
}
if(flot)puts("Y");
else puts("N");
}
return 0;
}

  

第七届河南省赛10402: C.机器人(扩展欧几里德)的更多相关文章

  1. 第七届河南省赛10403: D.山区修路(dp)

    10403: D.山区修路 Time Limit: 2 Sec  Memory Limit: 128 MB Submit: 69  Solved: 23 [Submit][Status][Web Bo ...

  2. 第七届河南省赛G.Code the Tree(拓扑排序+模拟)

    G.Code the Tree Time Limit: 2 Sec  Memory Limit: 128 MB Submit: 35  Solved: 18 [Submit][Status][Web ...

  3. 第七届河南省赛B.海岛争霸(并差集)

    B.海岛争霸 Time Limit: 2 Sec  Memory Limit: 128 MB Submit: 130  Solved: 48 [Submit][Status][Web Board] D ...

  4. 第七届河南省赛A.物资调度(dfs)

    10401: A.物资调度 Time Limit: 2 Sec  Memory Limit: 128 MB Submit: 95  Solved: 54 [Submit][Status][Web Bo ...

  5. 第七届河南省赛H.Rectangles(lis)

    10396: H.Rectangles Time Limit: 2 Sec  Memory Limit: 128 MB Submit: 229  Solved: 33 [Submit][Status] ...

  6. 第七届河南省赛F.Turing equation(模拟)

    10399: F.Turing equation Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 151  Solved: 84 [Submit][St ...

  7. 山东省第七届省赛 D题:Swiss-system tournament(归并排序)

    Description A Swiss-system tournament is a tournament which uses a non-elimination format. The first ...

  8. poj 2567 Code the Tree 河南第七届省赛

    Code the Tree Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 2350   Accepted: 906 Desc ...

  9. 第六届河南省赛 River Crossing 简单DP

    1488: River Crossing Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 83  Solved: 42 SubmitStatusWeb ...

随机推荐

  1. (转载) css实现小三角(尖角)

    在各种网站里面,我们会经常看到类似于这样的尖角:(示例:新浪微博) 它实现的方式有多种,哪种才是最简单的?哪种才是最优秀的?首先我声明一下,我还不清楚这个东西具体叫什么名字(哪位知道还望告知),暂且叫 ...

  2. mysql函数操作

    <?php try{ $dbh = new PDO('mysql:dbname=testdb;host=localhost', 'mysql_user', 'mysql_pwd'); }catc ...

  3. SQL Server 查看一个表上的索引

    方法:1 sys.indexes index_id =0:堆 index_id =1:聚集索引 index_id =2.....:非聚集索引 ----------------------------- ...

  4. FIDO联盟:我们将杀死密码

    前不久发布的三星S5与iPhone 5S一样,配备了指纹识别技术.但更为重要的是,这一识别器可以与PayPal关连,进而与多种支付系统相连.通过这一过程,你很可能会摆脱密码,用指纹就可以畅游网络.当然 ...

  5. Android 屏幕适配方式

    适配:即当前应用在相同的手机上面显示相同的效果.适配前需要首先确定当前手机所属像素密度类型(如:xhdpi.hdpi.mdpi等) 像素密度:每英寸上分布的像素点个数,单位(dpi,ppi),利用勾股 ...

  6. 细说javascript函数

    javascript函数是一个比较奇怪的东西,接触一段时间你就会犯迷糊,弄不明白它到底是什么了.你是否会因为有的javascript函数没有名字而莫名其妙,是否会因为javascript函数的参数没有 ...

  7. SQLServer2012 和 MariaDB 10.0.3 分页效率的对比

    1. 实验环境      R910服务器, 16G内存 SqlServer 2012   64bit MariaDB 10.0.3   64bit  (InnoDB) 2. 实验表情况 rtlBill ...

  8. [虚拟化/云][全栈demo] 为qemu增加一个PCI的watchdog外设(八)

    目的: 1. 通过网页读取watchdog的信息 2. 通过网页设置watchdog 准备工作: 1. 选择一个web框架,选用 cherrypy $ sudo apt-get install pyt ...

  9. uber在限制新司机加入了,看看新政策把

    您可以点击“车主奖励分组查询”输入您在系统注册的手机号查询您所在奖励分组 5月25日-5月31日 奖励明细 1. 成都优步合作车主第一组 奖励政策: (账户激活时间在2015年5月29日之前) *以下 ...

  10. javascript if 与 if else 的一点小认识

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...