51nod 1013 3的幂的和(等比数列求和_快速幂+逆元)

原创 2015年10月25日 10:02:42


求:3^0 + 3^1 +...+ 3^(N) mod 1000000007
Input
输入一个数N(0 <= N <= 10^9)
Output
输出:计算结果
Input示例
3
Output示例
40

关于逆元的一些知识点:

若对于数字A,C 存在X,使A * X = 1 (mod C) ,那么称X为 A 对C的乘法逆元。

逆元的作用?让我们来看下面的例子:
12 / 4 mod 7 = ? , 很显然结果是3
我们现在对于数对 (4,7), 可以知道 X = 2是 4 对7的乘法逆元即2*4=1(mod 7)
那么我们有(12 / 4) * (4 * 2 ) = (?) * (1) (mod 7)
除法被完美地转化为了乘法
理论依据:
F / A mod C = ?
如果存在 A*X = 1 (mod C)
那么2边同时乘起来,得到 F * X = ? (mod C)
成立条件
(1) 模方程 A * X = 1(mod C) 存在解
(2) A | F (F % A == 0)
以下来百度百科:
若ax=1 mod f 则称a关于模f的乘法逆元为x。也可表示为ax≡1(mod f)。
  当a与f互素时,a关于模f的乘法逆元有唯一解。如果不互素,则无解。如果f为素数,则从1到f-1的任意数都与f互素,即在1到f-1之间都恰好有一个关于模f的乘法逆元。
  例如,求5关于模14的乘法逆元:
  14=5*2+4
  5=4+1
  说明5与14互素,存在5关于14的乘法逆元。
  1=5-4=5-(14-5*2)=5*3-14
  因此,5关于模14的乘法逆元为3。










#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int mod=1000000007;
typedef long long ll;
ll mod_pow(ll x,ll n)
{
	int first=1;
	ll res=1;
	while(n>0) {
		if(n&1) res=res*x%mod;
		x=x*x%mod;
		n>>=1;
	}
	return res;
} 
int main()
{
	
    ios::sync_with_stdio(false);
	ll n,ans;
	cin>>n;
	n++;
	ans=(mod_pow(3,n)-1)*500000004%mod;    //求2的逆元即可。。因为Sn=(a1-an*q)/(1-q)%mod 
	cout<<ans<<endl;
	return 0;
}





版权声明:本文为博主原创文章,未经博主允许不得转载。

51Nod-1013-3的幂的和

求:3^0 + 3^1 +…+ 3^(N) mod 1000000007 Input 输入一个数N(0
  • f_zyj
  • f_zyj
  • 2016年04月24日 03:20
  • 501

1013 3的幂的和

求:3^0 + 3^1 +…+ 3^(N) mod 1000000007 Input 输入一个数N(0
  • NaCl__
  • NaCl__
  • 2016年01月03日 22:07
  • 587

51 nod 1013 3的幂的和

求:3^0 + 3^1 +...+ 3^(N) mod 1000000007 Input 输入一个数N(0 Output 输出:计算结果 Sample Input 3 Sample ...
  • Never__give__up
  • Never__give__up
  • 2018年01月11日 11:23
  • 5

【51Nod】1013 3的幂的和

题意求:3^0 + 3^1 +…+ 3^(N) mod 1000000007解题思路由等比数列的前n相和,我们可以得到 3n+1−12%1000000007\frac{3^{n+1}-1}{2} \...
  • JinbaoSite
  • JinbaoSite
  • 2017年05月24日 15:04
  • 533

51nod 1013:3的幂的和 快速幂

1013 3的幂的和 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题  收藏  关注 求:3^0 + 3^1 +...
  • u010885899
  • u010885899
  • 2015年09月06日 17:42
  • 516

51Nod 1013 3的幂的和(快速幂+逆元)

题目链接: http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1013 求:3^0 + 3^1 +...+ 3^(N)...
  • qq_33850438
  • qq_33850438
  • 2016年02月22日 04:32
  • 715

51Nod-1013 3的幂的和【快速模幂+逆元】

1013 3的幂的和 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 求:3^0 + 3^1 +...+ 3^(N) mod 1000000007 ...
  • tigerisland45
  • tigerisland45
  • 2017年06月01日 16:37
  • 315

51nod 1013【快速幂+逆元】

等比式子: Sn=(a1-an*q)/(1-q) n很大,搞一发快速幂,除法不适用于取膜,逆元一下(利用费马小定理) 假如p是质数,且gcd(a,p)=1,那么 a^(p-1)≡1(mod p...
  • KEYboarderQQ
  • KEYboarderQQ
  • 2016年11月02日 19:03
  • 220

【51Nod】1013 - 3的幂的和(等比数列 & 逆元)

点击打开题目 1013 3的幂的和 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题  收藏  关注 ...
  • wyg1997
  • wyg1997
  • 2016年08月16日 08:40
  • 171

51nod 1013 3的幂的和(逆元 or 矩阵快速幂)

求:3^0 + 3^1 +...+ 3^(N) mod 1000000007 Input 输入一个数N(0  Output 输出:计算结果 Input示例...
  • CillyB
  • CillyB
  • 2017年07月10日 23:50
  • 164
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:51nod 1013 3的幂的和(等比数列求和_快速幂+逆元)
举报原因:
原因补充:

(最多只允许输入30个字)