东大OJ-1391-Big big Power
题目描述
Calculate the power num a^(b^c) mod 1e9+7
输入
Multiple test cases,each case has three integers a,b and c . a,b,c is less than 1e9;
输出
Output the answer in each line
样例输入
2 3 2
样例输出
512
需要用到费马小定理.如果p是质数,并且a不等于1且a不等于p,那么 a^(p-1)%p====1.
所以,a^1000000006 % 1000000007=1.
a^b^c%1000000007=a^(b^c % 1000000006) % 1000000007.
这是第一关.用费马小定理将问题化简一下.
第二关是快速幂,用递归实现特别清晰.
九指神丐洪七公曾经告诉郭靖:遇到敌人不要把注意力放在敌人出什么招数上,你只需要把这降龙十八掌一遍一遍的使将出来,必可立于不败之地.
管他是否多余,多用long long int.各种取余.
为了安全,可以适当的冗余.尤其是现在的大程序.
#include<iostream>
using namespace std;
long long int go(long long int a, long long int b, long long int c){
if (b == 0)return 1;
long long int t = go(a, b / 2, c);
long long int p = (t*t) % c;
if (b % 2 == 0)return p;
return (p*a) % c;
}
int main(){
//freopen("in.txt", "r", stdin);
long long int a, b, c;
while (cin >> a >> b >> c)
cout << go(a, go(b, c, 1000000006), 1000000007)<<endl;
return 0;
}
东大OJ-1391-Big big Power的更多相关文章
- 东大OJ 2SAT 异或
看了十年才懂懂了十年才会会了十年才会写写了十年才写完写完了十年才能改对 #include<stdio.h> #include<string.h> struct res{ int ...
- 东大OJ-Max Area
1034: Max Area 时间限制: 1 Sec 内存限制: 128 MB 提交: 40 解决: 6 [提交][状态][讨论版] 题目描述 又是这道题,请不要惊讶,也许你已经见过了,那就请你再 ...
- POJ 1038 Bugs Integrated, Inc.
AC通道 神坑的一道题,写了三遍. 两点半开始写的, 第一遍是直接维护两行的二进制.理论上是没问题的,看POJ discuss 上也有人实现了,但是我敲完后准备开始调了.然后就莫名其妙的以为会超时,就 ...
- light oj 1155 - Power Transmission【拆点网络流】
1155 - Power Transmission PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: 32 ...
- power oj 2480 放积木[二进制状压DP]
题目链接[https://www.oj.swust.edu.cn/problem/show/2480] 题意:中文题目. 题解:二进制状态转移+坏点判断. #include<cstdio> ...
- power oj 1557种树[二进制状压DP]
题目链接[https://www.oj.swust.edu.cn/problem/show/1557] 题意:中文题目. 题解:用0,1表示某个位置是否种了树,先算出同一行的有效状态的总数,即开两个1 ...
- power oj/2360/Change
题目链接[https://www.oj.swust.edu.cn/problem/show/2360] 题意:给出两个四位数A.B,目地是用最少的步骤使A变成B.变换规则如下:1.相邻的两位数可以交换 ...
- Power OJ 2605 SPFA+dp思想
题目链接[https://www.oj.swust.edu.cn/problem/show/2605] 题意:给出包含N(N <= 5000)个点M条边的有向图,然后求1 - N在满足距离小于T ...
- LeetCode OJ:Power of Two(2的幂)
Given an integer, write a function to determine if it is a power of two. 看一个数是不是2的幂,代码如下: class Solu ...
随机推荐
- linux下创建用户
linux下创建用户(一) Linux 系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统.用户的账号一方面可以帮助系 ...
- flock — 轻便的咨询文件锁定
bool flock ( resource $handle , int $operation [, int &$wouldblock ] ) handle 文件系统指针,是典型地由 ...
- HTML 头部标记
HTML头部标记放在<head></head>中,一般包括标题.基底信息.元信息等. <base> 当前文档的URL全称(基底网址) <base ...
- C++浅析——继承类内存分布和虚析构函数
继承类研究 1. Code 1.1 Cbase, CTEST为基类,CTest2为其继承类,并重新申明了基类中的同名变量 class CBase { public: int Data; CBase() ...
- Buffer Overflow Study
-- These days I learned and studied buffer overflow. I like to write on the paper and it can keep sy ...
- Effective Java 读书笔记
创建和销毁对象 >考虑用静态工厂方法替代构造器. 优点: ●优势在于有名称. ●不必再每次调用他们的时候都创建一个新的对象. ●可以返回原返回类型的任何子类型的对象. ●在创建参数化类型实例的时 ...
- 2014 UESTC暑前集训搜索专题解题报告
A.解救小Q BFS.每次到达一个状态时看是否是在传送阵的一点上,是则传送到另一点即可. 代码: #include <iostream> #include <cstdio> # ...
- Angularjs使用的一些特点
1.函数会影响到全局命名空间 javascript 尽量避免使用全局变量,因为他们容易被其他文件脚本覆盖. angularjs让所有函数的作用域作用在该模块下面,避免了该问题. 2.angularjs ...
- Python自动补全
转自:http://blog.linuxeye.com/324.html Python自动补全有vim编辑下和python交互模式下,下面分别介绍如何在这2种情况下实现Tab键自动补全. 一.vim ...
- iOS多线程杂论
iOS多线程的分布 (1) NSThread (2) NSOperation (3) GCD 现在对下面三个进行一个个的分析,希望那里说得不对的地方希望简友们帮我指点一二. 1,NSThread 优点 ...