博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【裴蜀定理】[HAOI2011]向量
阅读量:4553 次
发布时间:2019-06-08

本文共 1419 字,大约阅读时间需要 4 分钟。

这个题写了一页式子qaq(还看了题解

刚开始在luogu AC了但在BZOJ CE了

看不懂不想看但感觉是abs的锅, 自己定义了一个abs就好了QAQ

dalao告诉我gcd的时候else 也要加return , 最后加个return 0

这样:

而不是:

(虽然这样也能过qwq

我的证明:

 

 哈哈哈哈哈哈哈哈哈就是这么草率qwq

代码:

1 #include
2 #include
3 #define ll long long 4 using namespace std; 5 ll n, a, b, x, y, mid, sum; 6 ll read() { 7 char ch = getchar(); ll x = 0, f = 1; 8 while(ch > '9' || ch < '0') {
if(ch == '-') f = -1; ch = getchar();} 9 while(ch >= '0' && ch <= '9') {x = x * 10 + ch - '0' ; ch = getchar();}10 return x * f;11 }12 ll absabs(ll x) {13 if(x < 0) return -x;14 if(x >= 0) return x;15 }16 ll gcd(ll a, ll b) {17 if(a < 0) a = -a;18 if(b < 0) b = -b;19 if(!b) return a;20 else else gcd(b, a % b);21 return 0;22 }23 int main() {24 scanf("%lld", &n);25 while(n--) {26 bool flag = 0;27 a = read(), b = read(), x = read(), y = read();28 mid = gcd(a*a - b*b, a*a + b*b);29 sum = gcd(mid, 2*a*b);30 ll o = absabs(a*y-b*x), s = absabs(b*y-a*x), t = absabs(a*y+b*x), f = absabs(b*y+a*x);//这里如果直接放到下面判断会报错QAQ窝也不知道为什么QAQ31 if(o % sum != 0) flag = 1;32 if(s % sum != 0) flag = 1;33 if(t % sum != 0) flag = 1;34 if(f % sum != 0) flag = 1;35 if(flag) printf("N\n");36 else printf("Y\n");37 }38 return 0;39 }

加油加油!!!!!!!!!!!!!

转载于:https://www.cnblogs.com/Hwjia/p/9909605.html

你可能感兴趣的文章
计算php脚本执行时间
查看>>
php静态和抽象
查看>>
Jolt:软件业的奥斯卡
查看>>
机器学习课程笔记 (1)
查看>>
基础数据类型 格式化输出
查看>>
第九周作业
查看>>
解析大型.NET ERP系统 单据编码功能实现
查看>>
互联网创业应该如何找到创意 - RethinkDB创始人Slava Akhmechet的几点建议
查看>>
互联网技术架构给我们的启示
查看>>
hbase redis mysql重要知识点总结
查看>>
取数字(dp优化)
查看>>
web app builder arcgis 自定义弹窗
查看>>
第六天冲刺
查看>>
Golang学习 - strconv 包
查看>>
ERROR util.Shell: Failed to locate the winutils binary in the hadoop binary path
查看>>
imx6 system boot
查看>>
[SDOI2017]硬币游戏
查看>>
Azure 网站、云服务和虚拟机比较
查看>>
Windows 10在2018四月更新中默认安装了OpenSSH客户端
查看>>
jQuery常用函数
查看>>