2 条题解

  • 0
    @ 2025-10-8 16:58:20

    题解

    #include<bits/stdc++.h>
    using namespace std;
    typedef long long LL;
    const LL P=200907;
    
    LL qpow(LL a, LL b, LL c) {
        LL ret = 1 % c; a %= c;
        for (; b; b >>= 1, a = a * a % c) if (b & 1) ret = ret * a % c;
        return ret;
    }
    
    int main() {
        int T; scanf("%d", &T);
        while (T--) {
            LL a1, a2, a3, k; scanf("%lld%lld%lld%lld", &a1, &a2, &a3, &k);
            if (a2 - a1 == a3 - a2) { // 等差数列
                LL d = a2 - a1;
                printf("%lld\n", (a1 + (k - 1) * d % P) % P);
            } else { // 等比数列
                LL q = a2 / a1;
                printf("%lld\n", a1 * qpow(q, k - 1, P) % P);
            }
        }
        return 0;
    }
    
    • 0
      @ 2025-10-8 16:58:13
      #include<bits/stdc++.h>
      using namespace std;
      typedef long long LL;
      const LL P=200907;
      LL qpow(LL a,LL b,LL c)
      {
          LL ret=1%c;a%=c;
          for(;b;b>>=1,a=a*a%c)if(b&1)ret=ret*a%c;
          return ret;
      }
      int main()
      {
          int T;scanf("%d",&T);
          while(T--)
          {
              LL a1,a2,a3,k;scanf("%lld%lld%lld%lld",&a1,&a2,&a3,&k);
              if(a2-a1==a3-a2)
              {
                  LL d=a2-a1;
                  printf("%lld\n",(a1+(k-1)*d%P)%P);
              }
              else
              {
                  LL q=a2/a1;
                  printf("%lld\n", a1*qpow(q,k-1,P)%P);
              }
          }
          return 0;
      }
      • 1

      信息

      ID
      1759
      时间
      1000ms
      内存
      512MiB
      难度
      5
      标签
      递交数
      139
      已通过
      57
      上传者