CSES - Exponentiation | Lũy thừa

Xem PDF



Thời gian:
Pypy 3 3.0s
Python 3 3.0s

Tác giả:
Dạng bài
Điểm: 1300 (p) Thời gian: 1.0s Bộ nhớ: 512M Input: bàn phím Output: màn hình

Hãy tính toán các giá trị \(a^b \mod 10^9\) \(+ 7\) một cách hiệu quả.

Lưu ý: Trong bài này, ta giả định rằng \(0^0 = 1\).

Input

  • Dòng đầu tiên chứa một số nguyên \(n:\) số lượng câu hỏi.
  • Sau đó là \(n\) dòng, mỗi dòng chứa hai số \(a,b\).

Output

  • In ra các giá trị \(a^b \mod 10^9\) \(+\) \(7\).

Constraints

  • \(1 \leq n \leq 2 \cdot 10^5\)
  • \(0 \leq a, b \leq 10^9\)

Example

Sample input

3
3 4
2 8 
123 123

Sample output

81
256
921450052


Bình luận


  • 0
    KhoiNguyen_NTT    9:29 p.m. 13 Tháng 6, 2024 chỉnh sửa 5

    code tham khảo

    #include <bits/stdc++.h>
    using namespace std;
    const int M=1e9+7;
    #define ll long long
    ll bp(ll a, ll b);
    int main()
        {                    
            ll t,a,b; cin>>t;
            while (t--)
                cin>>a>>b,
                cout<<bp(a,b)<<"\n";
        }
    ll bp(ll a, ll b)
        {         
            int ans=1;
            while (b)
                {
                    if (b&1) 
                        ans=(ans*a)%M;
                    a=(a*a)%M; b/=2;
                }
            return ans;
        }
    

    • 0
      xthabao1    11:57 p.m. 14 Tháng 7, 2024

      bro có thể giải thik code được không vậy

      7 bình luận nữa