news 2026/6/10 13:04:11

《P2520 [HAOI2011] 向量》

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
《P2520 [HAOI2011] 向量》

题目描述

给你一对数 (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×109≤a,b,x,y≤2×109)。

输出格式

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

输入输出样例

输入 #1复制

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

输出 #1复制

Y N Y

说明/提示

样例解释

第一组:(2,1)+(1,2)=(3,3)。

第三组:(−1,0)+(−1,0)+(0,1)+(0,1)+(0,1)=(−2,3)。

代码实现:

// luogu-judger-enable-o2 #include<iostream> #include<cstdio> #include<algorithm> #include<cstring> #include<cmath> using namespace std; typedef long long ll; inline ll rd() { ll x=0,f=1; char c=getchar(); while(c<'0'||c>'9') { if(c=='-') f=-1; c=getchar(); } while(c>='0'&&c<='9') { x=(x<<1)+(x<<3)+(c^48); c=getchar(); } return x*f; } ll T,A,B,X,Y; ll exgcd(ll a,ll b,ll &x,ll &y) { if(!b) { x=1,y=0; return a; } ll d=exgcd(b,a%b,x,y); ll t=x; x=y; y=t-a/b*y; return d; } int main() { T=rd(); while(T--) { A=rd(),B=rd(),X=rd(),Y=rd(); if(!A&&!B) { if(!X&&!Y) printf("Y\n"); else printf("N\n"); continue; } if(A<0) A=-A; if(B<0) B=-B; if(A<B) swap(A,B); ll k1,k2,d1=exgcd(A,B,k1,k2); if(X%d1) { printf("N\n"); continue; } ll k3,k4,d2=exgcd(A,B,k3,k4); if(Y%d2) { printf("N\n"); continue; } k1*=X/d1; k2*=X/d1; k3*=Y/d2; k4*=Y/d2; if((!A||!B) || ((k1+k2)%2+2)%2==((k3+k4)%2+2)%2 ) { printf("Y\n"); continue; } if(((A/d1)&1)^((B/d1)&1) || ((A/d2)&1)^((B/d2)&1) ) printf("Y\n"); else printf("N\n"); } return 0; }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 8:31:24

芯片制造中如何高效上传设计文档?

.NET程序员的20G文件上传历险记 大家好&#xff0c;我是甘肃的一名苦逼.NET程序员&#xff0c;最近接了个外包项目&#xff0c;客户的需求简直是要我老命啊&#xff01;来给大家扒一扒这个"价值连城"的项目需求&#xff1a; 项目需求&#xff1a;地狱级难度 大文件…

作者头像 李华
网站建设 2026/6/10 8:42:45

当测试工程师成为“多面手”:从SQL检查到性能压测的全能挑战

关注 霍格沃兹测试学院公众号&#xff0c;回复「资料」, 领取人工智能测试开发技术合集他负责测试&#xff0c;却被要求检查SQL规范&#xff1b;他写自动化脚本&#xff0c;却总担心定位不稳&#xff1b;面对100多个接口的性能压测需求&#xff0c;他陷入了工期与质量的矛盾………

作者头像 李华
网站建设 2026/6/10 8:41:02

远程固件升级服务(自有服务器,使用libfota2扩展库)

一、FOTA 概述 FOTA 即远程升级功能&#xff0c;此功能可以让客户在不方便大量线刷升级(设备不在身边/量产 PCB 没引出 USB/需要大批量进行功能升级)的情况下&#xff0c;快速进行底层固件/脚本/脚本 底层固件的远程更新。 LuatOS 开发模式下&#xff0c;固件分为两部分&…

作者头像 李华
网站建设 2026/6/10 8:45:28

操作系统管道 = 水管管道?

不&#xff0c;操作系统管道&#xff08;Pipe&#xff09; ≠ 水管管道&#xff08;Physical Pipe&#xff09;。 二者仅在中文里共享“管道”一词&#xff0c;实则属于 抽象计算模型 vs 物理流体系统 的完全不同的范畴。混淆二者会阻碍对操作系统原理和工程隐喻的准确理解。一…

作者头像 李华
网站建设 2026/6/10 10:10:34

初学者的狂喜:当代码第一次呼吸时

初学者的狂喜&#xff1a;当代码第一次呼吸时第一章&#xff1a;黎明时分第一次见到那行“Hello, World!”在屏幕上亮起时&#xff0c;我整个人仿佛被电流击穿。那是在一个潮湿的夏夜&#xff0c;宿舍风扇嗡嗡作响&#xff0c;而我蜷缩在一台二手笔记本电脑前&#xff0c;手指笨…

作者头像 李华