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;
}





版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/h1021456873/article/details/49401637

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:59
  • 822

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

51Nod 1013 3的幂的和 (快速幂取模+逆元):http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1013 题面描述...
  • PNAN222
  • PNAN222
  • 2016-08-17 18:29:06
  • 344

51nod 1013 3的幂的和

题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1013 题目: 求:3^0 + 3^1 +...+ 3...
  • zchahaha
  • zchahaha
  • 2016-06-27 10:44:43
  • 549

1013 3的幂的和

求:3^0 + 3^1 +…+ 3^(N) mod 1000000007 Input 输入一个数N(0
  • NaCl__
  • NaCl__
  • 2016-01-03 22:07:57
  • 660

1013 三的幂的和

1013 3的幂的和基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 收藏 关注 求:3^0 + 3^1 +…+ 3^(N) mod 1000000007 In...
  • q451792269
  • q451792269
  • 2017-09-18 20:16:53
  • 241

51Nod-1013-3的幂的和

求:3^0 + 3^1 +…+ 3^(N) mod 1000000007 Input 输入一个数N(0
  • f_zyj
  • f_zyj
  • 2016-04-24 03:20:11
  • 542

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

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

51nod 1013 3的幂的和(费马小定理+快速幂 or 矩阵快速幂)

1013 3的幂的和 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题  收藏  关注 求:3^0 + 3^1 +...+ 3^(N) mod ...
  • zwj1452267376
  • zwj1452267376
  • 2017-01-17 04:38:50
  • 490

51nod-【1013 3的幂的和】

1013 3的幂的和 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题  收藏  关注 求:3^0 + 3^1 +...
  • Cai_Nia
  • Cai_Nia
  • 2016-11-07 19:55:23
  • 270

Fibonacci数列的幂和

题目:http://acm.zju.edu.cn/onlinejudge/showContestProblem.do?problemId=5228 题意:给定和,其中,,求  的值。 分析:嗯...
  • ACdreamers
  • ACdreamers
  • 2014-04-07 11:26:34
  • 3620
收藏助手
不良信息举报
您举报文章:51nod 1013 3的幂的和(等比数列求和_快速幂+逆元)
举报原因:
原因补充:

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