1 条题解

  • 0
    @ 2025-9-10 9:09:17

    C++ :

    #include <bits/stdc++.h>
    #define LLL __int128
    #define LL long long
    using namespace std;
    
    int T;
    LL K, m;
    
    LL Gcd(LL x, LL y) {
      return !y ? x : Gcd(y, x % y);
    }
    
    LL Solve(LL L, LL m, LL K, LL las) {
      LL d = Gcd(K, las);
      if(L <= K / d) return L;
      if((LLL)K - (LLL)m * (K - L) <= 0) return K / d;
      return m * (K - L) / d + Solve((K - m * (K - L)) / d, m, K / d, d);
    }
    
    int main(void) {
      scanf("%d", &T);
      while(T--) {
        scanf("%lld%lld", &m, &K);
        printf("%lld\n", Solve(K - 1, m, K, m) + 1);
      }
      return 0;
    } 
    
    • 1

    信息

    ID
    3778
    时间
    1000ms
    内存
    128MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者