51Nod 1004 n^n末尾数字 | 快速幂

#include "bits/stdc++.h"
using namespace std;
#define LL long long
#define INF 0x3f3f3f3f3f
#define PI acos(-1)
#define N 510
#define MOD 10
LL quickPow(LL a,LL b)
{
    LL ans=1;
    while(b>0){
        if(b&1){
            ans=ans*a%MOD;
        }
        b>>=1;
        a=a*a%MOD;
    }
    return ans;
}
int main()
{
    int n,k;
    while(~scanf("%d",&n)){
        printf("%lld\n",quickPow(n,n));
    }
    return 0;
}
时间: 2024-10-20 05:56:34

51Nod 1004 n^n末尾数字 | 快速幂的相关文章

【51Nod 1341】混合序列 矩阵快速幂

题意 给定两个数列\(a_n=pa_{n-1}+r,a_0=0\) , \(b_n=qb_{n-1},b_0=3\) , 求\(\sum_{i=0}^{n}a_i\times b_{n-i} \mod {1e9+7}\) 如果\(n\)的范围是\(1e7\),可以用FFT加速卷积 这题范围过大,所以只能用别的方法 令\(f_n=\sum_{i=0}^{n}a_i\times b_{n-i}\) , 那么\(f_{n+1}=\sum_{i=0}^{n+1}a_i\times b_{n+1-i}=\

51Nod 1004 n^n的末位数字(日常复习快速幂,莫名的有毒,卡mod值)

1004 n^n的末位数字 题目来源: Author Ignatius.L (Hdu 1061) 基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题 给出一个整数N,输出N^N(N的N次方)的十进制表示的末位数字. Input 一个数N(1 <= N <= 10^9) Output 输出N^N的末位数字 Input示例 13 Output示例 3 题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!pr

51Nod - 1004 n^n的末位数字

51Nod - 1004 n^n的末位数字 给出一个整数N,输出N^N(N的N次方)的十进制表示的末位数字. Input 一个数N(1 <= N <= 10^9) Output 输出N^N的末位数字 Input示例 13 Output示例 3 题解: 末尾数字,所以在快速迭代幂的时候,只需要考虑末尾数字即可. #include <iostream> #include <cstdio> #include <cstdlib> #include <cstri

51Nod 1046 A^B Mod C(日常复习快速幂)

1046 A^B Mod C 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 给出3个正整数A B C,求A^B Mod C. 例如,3 5 8,3^5 Mod 8 = 3. Input 3个正整数A B C,中间用空格分隔.(1 <= A,B,C <= 10^9) Output 输出计算结果 Input示例 3 5 8 Output示例 3 题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!prob

51nod 1013快速幂 + 费马小定理

http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1013 这是一个等比数列,所以先用求和公式,然后和3^(n+1)有关,有n比较大,所以用快速幂来解决,又有/2的操作,所以可以用费马小定理取逆元. #include<map> #include<queue> #include<stack> #include<cmath> #include<cstdio> #include&

51Nod - 1113 矩阵快速幂

51Nod - 1113 矩阵快速幂 给出一个N * N的矩阵,其中的元素均为正整数.求这个矩阵的M次方.由于M次方的计算结果太大,只需要输出每个元素Mod (10^9 + 7)的结果. Input 第1行:2个数N和M,中间用空格分隔.N为矩阵的大小,M为M次方.(2 <= N <= 100, 1 <= M <= 10^9) 第2 - N + 1行:每行N个数,对应N * N矩阵中的1行.(0 <= N[i] <= 10^9) Output 共N行,每行N个数,对应M

51nod 1537 分解(矩阵快速幂)

分析:先写出前几项,发现都是有解的.记(1+√2)^n=a+b√2,可以归纳证明,当n为奇数时,m=a^2+1,n为偶数时,m=a^2.写出a的递推式,用矩阵快速幂算一下a即可. 1 #include<iostream> 2 #include<cstring> 3 #include<cstdio> 4 using namespace std; 5 const int p=1e9+7; 6 typedef unsigned long long ull; 7 ull mat

51nod 算法马拉松18 B 非010串 矩阵快速幂

非010串 基准时间限制:1 秒 空间限制:131072 KB 分值: 80 如果一个01字符串满足不存在010这样的子串,那么称它为非010串. 求长度为n的非010串的个数.(对1e9+7取模) Input 一个数n,表示长度.(n<1e15) Output 长度为n的非010串的个数.(对1e9+7取模) Input示例 3 Output示例 7 解释: 000 001 011 100 101 110 111 读完题,这样的题目肯定是能找到规律所在的,要不然数据太大根本无法算.假设现在给的

(矩阵快速幂)51NOD 1242斐波那契数列的第N项

斐波那契数列的定义如下: F(0) = 0 F(1) = 1 F(n) = F(n - 1) + F(n - 2) (n >= 2) (1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, ...) 给出n,求F(n),由于结果很大,输出F(n) % 1000000009的结果即可. 输入 输入1个数n(1 <= n <= 10^18). 输出 输出F(n) % 1000000009的结果. 输入样例 11 输出样例 89解:由于斐波那