51nod 1013 3的冪的和

2021-08-14 02:43:35 字數 860 閱讀 1248

求:3^0 + 3^1 +...+ 3^(n) mod 1000000007

input

輸入乙個數n(0 <= n <= 10^9)
output

輸出:計算結果
input示例

3
output示例

40
思路:

根據等比數列和的公式,本題的解為((3^(n+1) - 1) / 2) % 1000000007。

如果x與y的積除以z所得的餘數為1,即xy = 1 (mod z),則稱x和y對於模數z來說互為逆元。假定(b∗x)%c=1則

a/b%c=a/b∗1%c=a/b%c∗1%c=a/b%c∗(b∗x)%c=(a/b∗b∗x)%c=(a∗x)%c

在本題中,2*500000004 = 1 (mod 1000000007),所以500000004是2對於1000000007的逆元。則

(3^(n+1)−1)/2%1000000007=(3^(n+1)−1)∗500000004%1000000007

這樣,就將除法運算轉換為乘法運算。

#include #include using namespace std;

typedef long long int ll;

ll mod = 1e9 + 7;

ll mod_pow(ll a, ll k)

k /= 2;

base = (base * base) % mod;

} return result;

}int main()

51 nod 1013 3的冪的和

1013 3的冪的和 基準時間限制 1 秒 空間限制 131072 kb 分值 20 難度 3級演算法題 求 3 0 3 1 3 n mod 1000000007 input 輸入乙個數n 0 n 10 9 output 輸出 計算結果input示例 3output示例 40思路為快速冪加逆元,至於...

51NOD 1013 3的冪的和

求 3 0 3 1 3 n mod 1000000007 input 輸入乙個數n 0 n 10 9 output 輸出 計算結果input示例 3output示例 40 很簡單,這個題目是乙個前n項求和的題 首先寫出求和公式發現分母上有個2劃開後可以變成3 n 2 1 2鑑於他是乙個整型數而3 n...

51 Nod 1013 3的冪的和

1013 3的冪的和 基準時間限制 1 秒 空間限制 131072 kb 分值 20 難度 3級演算法題 求 3 0 3 1 3 n mod 1000000007 input 輸入乙個數n 0 n 10 9 output 輸出 計算結果input示例 3output示例 40題意 思路 明顯的等比數...