Cấp số nhân

Xem PDF




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

Cấp số nhân là một dãy số thỏa mãn điều kiện tỷ số giữa \(2\) phần tử liên tiếp là hằng số. Xét dãy cấp số nhân \(1,x,x^2,x^3,….,x^n\).

Yêu cầu: Cho 2 số nguyên \(x\)\(n\). Tính tổng tất cả các phần tử trong cấp số nhân đã cho. Vì kết quả có thể rất lớn nên chỉ đưa ra số dư trong phép chia cho \(m\).

Input

  • Một dòng chứa 3 số nguyên dương \(x,n,m \ (x \leq 100, n \leq 10^{18}, m \leq 10^7)\).

Output

  • Một số nguyên là kết quả của bài toán.

Example

Test 1

Input
2 6 1000 
Output
127
Note

Giải thích: \(.2^0+2^1+2^2+2^3+2^4+2^5+2^6=1+2+4+8+16+32+64=127\).


Bình luận


  • 10
    jumptozero    7:20 a.m. 27 Tháng 2, 2021 chỉnh sửa 3

    Mình xin trình bài lời giải bài này theo 2 cách như sau:

    Cách 1: Chia để trị :

    Đặt \(G(p,n)=1+p+...+p^{n}\rightarrow (1)\).

    Công việc tiếp theo của chúng ta là đi tính \(G(p,n)\), và chúng được thực hiện như sau:

    Ta có: \(G(p,n)=\left\{\begin{matrix} 1, \text{ với }n=0 \\ 1+p, \text{ với } n=1 \\ 1 + p*G(p,n-1), \text{ với } n \text{ lẻ } \\(1+p^{\frac{n}{2}})[G(p,\frac{n}{2})-1]+1=(1+p^{\frac{n}{2}})(1+p+...+p^{\frac{n}{2}}-1)+1, \text{ với } n \text{ chẵn }\end{matrix}\right.\)

    Và độ phức tạp để tính \(G(p,n)\)\(O(log(n))\)

    Và các bạn có thể tham khảo code tại đây: Link

    Cách 2: nhân ma trận.

    Từ \((1)\implies G(p,n+1) = G(p,n)*p+1\)

    Đặt \(F[n]=G(p,n)\). Khi đó ta có: \(F[n+1]=p*F[n]+1\)

    \(\implies \begin{pmatrix}F[n] & 1\end{pmatrix}.\begin{pmatrix}p & 0 \\ 1 & 1\end{pmatrix} = \begin{pmatrix}F[n+1] & 1\end{pmatrix}\)

    Đến đây, đặt \(p_n=\begin{pmatrix}F[n] & 1\end{pmatrix}\). và \(M=\begin{pmatrix}p & 0 \\ 1 & 1\end{pmatrix}\). Ta có: \(p_{n+1}=p_n.M=p_{n-1}.M^{2}=...=p_0.M^n\). Với \(p_0=\begin{pmatrix}1 & 1\end{pmatrix}\)

    Đến đây sử dụng luỹ thừa nhị phân trên ma trận là ta đã giải quyết xong bài toán.

    Các bạn có thể tham khảo code tại đây:Link


    • 0
      ap    10:08 p.m. 22 Tháng 2, 2021

      tội SPyofgame


      • 1
        THOANGLQDT    11:49 a.m. 11 Tháng 10, 2020

        SPyofgame


        • 3
          N7hoatt    10:58 p.m. 31 Tháng 7, 2020

          em cần trợ giúp ngay lập tức SPyofgame

          1 phản hồi

          • 2
            vinhntndu    9:49 p.m. 18 Tháng 7, 2020

            SPyofgame có người gọi kìa


            • 0
              Lê_Gia_Khánh    4:31 p.m. 11 Tháng 7, 2020

              @SPyofgame