51Nod 1013-3的幂的和
生活随笔
收集整理的這篇文章主要介紹了
51Nod 1013-3的幂的和
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1013?3的冪的和?基準(zhǔn)時(shí)間限制:1?秒 空間限制:131072?KB 分值:?20?難度:3級(jí)算法題題目鏈接
?收藏?關(guān)注 求:3^0 + 3^1 +...+ 3^(N) mod 1000000007 Input輸入一個(gè)數(shù)N(0?<=?N?<=?10^9)Output輸出:計(jì)算結(jié)果Input示例3Output示例40
?收藏?關(guān)注 求:3^0 + 3^1 +...+ 3^(N) mod 1000000007 Input輸入一個(gè)數(shù)N(0?<=?N?<=?10^9)Output輸出:計(jì)算結(jié)果Input示例3Output示例40
題解:
由等比數(shù)列的前n相和,我們可以得到 一個(gè)式子。
現(xiàn)在只需求這個(gè)除法取模即可。
除法取模需要用到逆元。
具體的推到方法我已融匯貫通,解釋不了。總之,a/b%mod只要求出一個(gè)數(shù)字就行,可以轉(zhuǎn)化為乘法取模。
b*x%mod=1求出x,結(jié)果為a/b%mod=a*x%mod。
參考博客:點(diǎn)擊打開
筆記:
1.除法取模要用到逆元
2.(A*B)%C=(A%C*B%C)%C
#include<bits/stdc++.h> using namespace std; #define MOD 1000000007 #define ll long long int ll Pow(ll a,ll n) {ll res=1;while(n){if(n&1){res=(res*a)%MOD;}a=(a*a)%MOD;n>>=1;}return res; } int main() {ll n;scanf("%lld",&n); ll sum=(Pow(3,n+1)-1)*500000004%MOD;printf("%lld",sum);return 0; }總結(jié)
以上是生活随笔為你收集整理的51Nod 1013-3的幂的和的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 简约工作展示汇报PPT模板
- 下一篇: 如何利用J-Link烧写进行程序烧写