2 条题解

  • 1
    @ 2025-11-1 18:44:51
    
    #include <iostream>
    #include <vector>
    #include <algorithm>
    #include <cmath>
    using namespace std;
    
    long long gcd(long long a, long long b) {
        return b == 0 ? a : gcd(b, a % b);
    }
    
    int main() {
        ios::sync_with_stdio(false);
        cin.tie(nullptr);
        
        int n, Q;
        cin >> n >> Q;
        
        vector<long long> a(n);
        for (int i = 0; i < n; i++) {
            cin >> a[i];
        }
        
        // 计算差分数组的gcd
        long long g = 0;
        for (int i = 1; i < n; i++) {
            g = gcd(g, abs(a[i] - a[0]));
        }
        
        // 处理每个询问
        for (int i = 1; i <= Q; i++) {
            long long result = gcd(a[0] + i, g);
            cout << result << "\n";
        }
        
        return 0;
    }
    
    

    信息

    ID
    3339
    时间
    1000ms
    内存
    256MiB
    难度
    7
    标签
    递交数
    57
    已通过
    13
    上传者