解题报告 (十五) 扩展欧拉定理
Posted 英雄哪里出来
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解题报告 (十五) 扩展欧拉定理相关的知识,希望对你有一定的参考价值。
文章目录
一、前言
本文会先给出一系列练习题,读者可以自行思考,或者到对应的 Online Judge 提交自己的代码,当遇到困难时,可以在文章结尾的【解题报告】中找到每一题的解题思路。
学习更多算法,欢迎扫码关注我们的微信公众号【夜深人静写算法】。
二、本文知识点
1、知识点简述
- 根据如下公式,可以得到当 b b b 较小的时候直接二分快速幂;当 b b b 非常大的时候采用扩展欧拉定理进行指数降幂以后再进行二分快速幂计算。
- a b m o d c = { a b m o d c b < ϕ ( c ) a b m o d ϕ ( c ) + ϕ ( c ) m o d c b > = ϕ ( c ) a^{b} \\ mod \\ c = \\begin {cases} a^{b} \\ mod \\ c & { b < \\phi(c)} \\\\ a^{b \\mod \\phi(c) + \\phi(c)} \\ mod \\ c & { b >= \\phi(c)} \\end {cases} ab mod c={ab mod cabmodϕ(c)+ϕ(c) mod cb<ϕ(c)b>=ϕ(c)
2、知识点详述
3、知识点依赖
文章链接 | 难度等级 | 推荐阅读 |
---|---|---|
夜深人静写算法(三)- 初等数论入门 | ★★☆☆☆ | ★★★★☆ |
夜深人静写算法(三十)- 二分快速幂 | ★☆☆☆☆ | ★★★★★ |
夜深人静写算法(三十一)- 欧拉函数 | ★★★☆☆ | ★★★★★ |
夜深人静写算法(三十二)- 费马小定理 | ★★☆☆☆ | ★★★☆☆ |
三、练习题
1、扩展欧拉定理 + 大数取余
洛谷 P5091 扩展欧拉定理
链接:洛谷 P5091 扩展欧拉定理
题意:给定 a , m , b a,m,b a,m,b,其中 ( a ∈ [ 1 , 1 0 9 ] , m ∈ [ 1 , 1 0 8 ] , b ∈ [ 1 , 1 0 20000000 ] ) (a \\in [1,10^9], m \\in [1, 10^8],b \\in [1, 10^{20000000}]) (a∈[1,109],m∈[1,108],b∈[1,1020000000]),求: a b m o d m a^b \\ mod \\ m ab mod m
洛谷 CF17D Notepad
链接:洛谷 CF17D Notepad
题意:你有一个本子,你要往上面写全部的长度为 n n n 的 b b b 进制数字,每一页可以写 c c c 个。要求所有数字必须严格不含前导零。求最后一页上有多少个数字。其中 2 ≤ b < 1 0 1 0 6 2 ≤ b < 10^{10^{6}} 2≤b<10106, 1 ≤ n < 1 0 1 0 6 1 ≤ n < 10^{10^{6}} 1≤n<10106, 1 ≤ c ≤ 1 0 9 1 ≤ c ≤ 10^9 1≤c≤109。
HDU 4704 Sum
链接:HDU 4704 Sum
题意:给出一个大整数 n ( 1 ≤ n ≤ 1 0 100000 ) n(1 \\le n \\le 10^{100000}) n(1≤n≤10100000),求: 2 n m o d 1000000007 2^n \\ mod \\ 1000000007 2n mod 1000000007
2、扩展欧拉定理 + DFS
洛谷 P4139 上帝与集合的正确用法
链接:洛谷 P4139 上帝与集合的正确用法
题意:给定 p p p,其中 ( p ≤ 1 0 7 ) (p \\le 10^7) (p≤107),求: 2 2 . . . 2 m o d p 2^{2^{{...}^2}} \\ mod \\ p 22...2 mod p
HDU 2837 Calculation
链接:HDU 2837 Calculation
题意:令 f ( 0 ) = 1 f(0) = 1 f(0)=1 且 0 0 = 1 0^0=1 00=1,当 n > 0 n \\gt 0 n>0 时,有: f ( n ) = ( n m o d 10 ) f ( n 10 ) f(n) = (n \\ mod \\ 10)^{f(\\frac n {10})} f(n)=(n mod 10)f(10n) 给定 ( 2 ≤ n , m ≤ 1 0 9 ) (2 \\le n , m \\le 10^9) (2≤n,m≤109),求 f ( n ) m o d m f(n) \\ mod \\ m f(n) mod m。
HDU 3609 Up-up
链接:HDU 3609 Up-up
题意:定义 a ↑ ↑ 1 = a a↑↑1 = a a↑↑1=a,且 a ↑ ↑ ( k + 1 ) = a a ↑ ↑ k a↑↑(k+1) = a^ {a↑↑k} a↑↑(k+1)=aa↑↑k,求 a ↑ ↑ k m o d 100000000 a↑↑k \\ mod \\ 100000000 a↑↑k mod 100000000。
PKU 2720 Last Digits
链接:PKU 2720 Last Digits
题意:令 f ( x ) = b f ( x − 1 ) f(x) = b^{f(x-1)} f(x)=bf(x−1),给定 b b b, x x x, n ( b ≤ 100 , x ≤ 100 , n ≤ 7 ) n (b \\le 100, x \\le 100, n \\le 7) n(b≤100,x≤100,n≤7),求 f ( x ) m o d 1 0 n f(x) \\ mod \\ 10^n f(x) mod 10n。
HDU 3464 Integers’s Weight
链接:HDU 3464 Integers’s Weight
题意:定义函数 w ( x ) w(x) w(x) 为 x x x 各位数字之和,比如 w ( 12097 ) = 1 + 2 + 0 + 9 + 7 = 19 w(12097) = 1+2+0+9+7 = 19 w(12097)=1+2+0+9+7=19,对于任意正整数 x x x,满足如下递归式:
f ( x ) = { 1 w ( x ) = x f ( w ( x ) ) + 1 o t h e r w i s e f(x) = \\begin{cases} 1 & w(x)=x \\\\ f(w(x)) + 1& otherwise \\end{cases} f(x)={1f(w(欧拉函数求和 解题报告UVA-10054.The Necklace(欧拉回路)解题报告
[poj 2480] Longge's problem 解题报告 (欧拉函数)
[luogu P2586] GCD 解题报告 (莫比乌斯反演|欧拉函数)