快速幂

                    	   快速幂
似乎没什么好写的,直接看代码部分
#include<cstdlib>
#include<cmath>
#include<ctime>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
long long a,b,m,ans=1;
long long power(long long a,long long b) 
{
	while(b!=0)
	{
		if(b%2==1)
		ans=(ans*a)%m;
		a=(a*a)%m;
		b/=2;
	}
	ans%=m;
	return ans;
}
int main()
{
	cin>>a>>b>>m;
	cout<<power(a,b);
}

就完了?
还是不要这么水了,再来上几道例题

「一本通 6.1 练习 3」越狱题目描述
原题来自:HNOI 2008
监狱有连续编号为1到n的n个房间,每个房间关押一个犯人。有 种宗教,每个犯人可能信仰其中一种。如果相邻房间的犯人信仰的宗教相同,就可能发生越狱。求有多少种状态可能发生越狱。
输入格式
输入两个整数n和m。
输出格式
可能越狱的状态数,对100003取余。
样例
输入
2 3
输出
6

就不分析题了。

posted @ 2021-03-20 20:48  S_Curry  阅读(13)  评论(0编辑  收藏  举报