• 【裴蜀定理】[HAOI2011]向量


    BZOJ2299 [HAOI2011]向量

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

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

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

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

    这样:

    而不是:

    (虽然这样也能过qwq

    我的证明:

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

    代码:

     1 #include<cstdio>
     2 #include<iostream>
     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窝也不知道为什么QAQ
    31         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
    ");
    36         else printf("Y
    ");
    37     }
    38     return 0;
    39 }

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

  • 相关阅读:
    FineReport 子窗口刷新父页面
    Swagger rest API 描述
    maven properties 动态转换
    elasticsearch postman操作
    学习网站
    python | 干货:VSCode 13款插件和8个快捷键,工作效率提升10倍
    python | 5大SQL数据清洗方法
    python | 阿里云发短信教程详细(2) -Python3
    python | 阿里云短信发送服务
    python | Linux各目录及每个目录的详细介绍
  • 原文地址:https://www.cnblogs.com/Hwjia/p/9909605.html
Copyright © 2020-2023  润新知