[Mảng 1 Chiều Cơ Bản]. Bài 60. Dãy số chia dư

Xem dạng PDF

Gửi bài giải

Điểm: 1,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Nguồn bài:
28Tech
Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Kotlin, Pascal, PyPy, Python, Scratch

Cho mảng A[] gồm N phần tử bạn hãy tính kết quả của biểu thức

S = (A[0]^0 + A[1]^1 + A[2]^2 + …. + A[N-1]^(N-1)) % 1000000007


Đầu vào

Dòng 1 là N : số phần tử trong mảng

Dòng 2 là N số viết cách nhau 1 dấu cách


Giới hạn

1≤N≤10^3

0≤A[i] ≤10^6


Đầu ra

In ra đáp án của bài toán


Ví dụ :

Input 01
3
2 1 5
Output 01
27
Input 02
16
2 2 4 8 4 8 8 4 7 2 5 0 8 2 6 7
Output 02
660967730

Bình luận

Hãy đọc nội quy trước khi bình luận.



  • -1
    kietne  đã bình luận lúc 29, Tháng 12, 2025, 14:36

    ĐÃ DONE 60 BÀI MẢNG 1 CHIỀU R NHA AE

    include <bits/stdc++.h>

    using namespace std; using ll = long long; const ll MOD = 1000000007LL;

    // modpowrec: tính base^exp % MOD bằng đệ quy (lũy thừa nhị phân) ll modpowrec(ll base, long long exp) { if (exp == 0) return 1 % MOD; ll half = modpowrec(base, exp / 2); ll res = (half * half) % MOD; if (exp % 2 == 1) res = (res * base) % MOD; return res; }

    int main() { ios::syncwithstdio(false); cin.tie(nullptr);

    int n;
    if (!(cin >> n))
        return 0;
    vector<ll> a(n);
    for (int i = 0; i < n; ++i)
        cin >> a[i];
    
    ll total = 0;
    for (int i = 0; i < n; ++i)
    {
        ll base = a[i] % MOD;
        if (base < 0)
            base += MOD;
        total = (total + mod_pow_rec(base, i)) % MOD;
    }
    cout << total << '\n';
    return 0;
    

    }



  • 0
    bennie15025_meow  đã bình luận lúc 19, Tháng 12, 2025, 15:13

    Code của mình AC 100%: https://onecompiler.com/cpp/4482vybyq