zoukankan      html  css  js  c++  java
  • luogu P1072 Hankson 的趣味题

    传送门

    日渐熟练了

    从已知条件搞一搞就可以发现a1|x , x|b1

    于是考虑枚举约数

    O(sqrt(n)*lgn*T)差不多1e7 被ll卡一波常数

    考试的时候实在卡常的话 也一定要看清楚 

    该开longlong的不能少

    Code:

     1 #include<cstdio>
     2 #include<cstring>
     3 #include<algorithm>
     4 #include<cmath>
     5 #include<queue>
     6 #include<vector>
     7 #include<iostream>
     8 #include<iomanip>
     9 #define itn int
    10 #define ms(a,b) memset(a,b,sizeof a)
    11 #define rep(i,a,n) for(int i = a;i <= n;i++)
    12 #define per(i,n,a) for(int i = n;i >= a;i--)
    13 #define inf 2147483647
    14 using namespace std;
    15 typedef long long ll;
    16 ll read() {
    17     ll as = 0,fu = 1;
    18     char c = getchar();
    19     while(c < '0' || c > '9') {
    20         if(c == '-') fu = -1;
    21         c = getchar();
    22     }
    23     while(c >= '0' && c <= '9') {
    24         as = as * 10 + c - '0';
    25         c = getchar();
    26     }
    27     return as * fu;
    28 }
    29 //head
    30 int a1,b1,a2,b2; 
    31 int gcd(int a,int b) {return b ? gcd(b,a%b) : a;}
    32 
    33 bool judge(int x) {
    34     x *= a2;
    35     if(gcd(x,a1) == a2 && (ll)b2 * gcd(x,b1) == (ll)x * b1) return 1;
    36     return 0;
    37 }
    38 
    39 void solve() {
    40     int ans = 0;
    41     a1 = read(),a2 = read(),b1 = read(),b2 = read();
    42     int t = b2 / a2;
    43     rep(i,1,sqrt(t)) {
    44         if(t % i) continue;
    45         ans += judge(i);
    46         if(i * i == t) continue; 
    47         ans += judge(t/i);
    48     }
    49     printf("%d
    ",ans);
    50 }
    51 
    52 int main() {
    53     int T = read();
    54     while(T--) solve();
    55     return 0;
    56 }
    > 别忘了 总有人在等着你
  • 相关阅读:
    LN : leetcode 283 Move Zeroes
    LN : Eden Polymorphic And OOP Design Pattern Abstract Factory
    LN : leetcode 242 Valid Anagram
    LN : leetcode 231 Power of Two
    LN : leetcode 191 Number of 1 Bits
    LN : leetcode 263 Ugly Number
    LN : leetcode 258 Add Digits
    LN : leetcode 292 Nim Game
    day5——Python整型、浮点型、布尔型及字符串
    day4——Python运算符
  • 原文地址:https://www.cnblogs.com/yuyanjiaB/p/9928021.html
Copyright © 2011-2022 走看看