P5091 【模板】扩展欧拉定理】的更多相关文章

P5091 [模板]欧拉定理 以上3张图是从这篇 博客 里盗的,讲的比较清楚. #include<bits/stdc++.h> using namespace std; typedef long long ll; const int N=20001006; ll mod(ll x,ll p) { return x>=p?x%p+p:x%p; } ll phi(ll x) { ll res=x,a=x; for(ll i=2;i*i<=x;++i) { if(a%i==0) { re…
思路 欧拉定理 当a与m互质时 \[ a^ {\phi (m)} \equiv 1 \ \ (mod\ m) \] 扩展欧拉定理 当a与m不互质且\(b\ge \phi(m)\)时, \[ a^b \equiv a^{(b\%\phi(m))+\phi(m)} \ \ (mod\ m) \] 当\(b<\phi(m)\)时,不一定正确 代码 #include <cstdio> #include <cstring> #include <algorithm> #inc…
欧拉定理:若 \(gcd(a,n)=1\),\(a^{\varphi(n)}\equiv 1(mod\ n)\) 设 \(1\sim n-1\) 中与 \(n\) 互素的 \(\varphi(n)\) 个数 \(x_1,x_2,...,x_{\varphi(n)}\in M_1\),那么集合 \(M_1\) 为模 \(n\) 的一个缩系 再设 \(a\cdot x_1,a\cdot x_2,...,a\cdot x_{\varphi(n)}\in M_2\),由于缩系的性质,集合 \(M_2\)…
题目大意:求$a^b\bmod m(a\leqslant10^9,m\leqslant10^6,b\leqslant10^{2\times10^7})$ 题解:扩展欧拉定理:$$a^b\equiv\begin{cases}a^{b\bmod{\varphi(p)}} &(a,b)=1\\a^b &(a,b)\not=1,b<\varphi(p)\\a^{b\bmod{\varphi(p)}+\varphi(p)} &(a,p)\not=1,b\geqslant\varphi(…
题目大意 让你求\(2^{2^{2^{\cdots}}}(mod)P\)的值. 前置知识 知识1:无限次幂怎么解决 让我们先来看一道全国数学竞赛的一道水题: 让你求解:\(x^{x^{x^{\cdots}}}=2\)方程的解. 对于上面的无限次幂,我们可以把这个式子移上去,得到了\(x^{2}=2\). 因为指数的原因,所以我们可以直接得到了\(x=\sqrt{2}\). 以上的问题,启示我们对于这一些无限次幂可以转移来解决. 以上的东西可能用不到 知识2:欧拉定理和扩展欧拉定理 详细请出门左拐…
Problem Description Sample Input 2 Sample Output 2 Hint 1. For N = 2, S(1) = S(2) = 1. 2. The input file consists of multiple test cases. 解题思路:由于指数很大,要用到欧拉降幂公式,即扩展欧拉定理:$ a^n \equiv a^{n \; mod \;\varphi(p)} (mod \; p)$,其中$gcd(a, p) = 1$.题目的意思就是给出一个N,…
VS自定义项目模板:[2]创建VSIX项目模板扩展 听语音 | 浏览:1237 | 更新:2015-01-02 09:21 | 标签:软件开发 1 2 3 4 5 6 7 分步阅读 一键约师傅 百度师傅高质屏和好师傅,拯救你的碎屏机 在新建项目后,需要添加一些通用的类文件或者引用,那么把其放在自定义模板中,创建自定义模板项目后就包含了这些类文件和引用,省去了一系列的操作,节约了开发时间. 上篇经验介绍如何导出模板做为自定义项目模板,这篇经验介绍如何将导出的自定义项目打包成VSIX扩展,方便部署到…
\(Description\) 给定p, \(Solution\) 欧拉定理:\(若(a,p)=1\),则\(a^b\equiv a^{b\%\varphi(p)}(mod\ p)\). 扩展欧拉定理:\(a^b\equiv a^{b\%\varphi(p)+\varphi(p)}(mod\ p)\) (a为任意整数,b,p为正整数,且\(b>\varphi(p)\)(a,p不一定要互质).证明. 指数是无穷的,但是模数是有限的,从不断减小p去考虑. 设\(f(p)=2^{2^{2^{...}}…
题意 https://loj.ac/problem/2142 思路 一个数如果要作为指数,那么它不能直接对模数取模,这是常识: 诸如 \(c^{c^{c^{c..}}}\) 的函数递增飞快,不是高精度可以描述的,这也是常识. 所以,此题要用到很多数论知识. 欧拉函数 定义 \(\varphi(n)\) 为 \([1,n]\) 中与 \(n\) 互质的正整数个数(包括 \(1\)). 通式 \(\displaystyle \varphi(n)=n\prod_{p|n}(1-{1\over p})\…
题意:求\(2^{2^{2^{2^{...}}}}\%p\) 题解:可以发现用扩展欧拉定理不需要很多次就能使模数变成1,后面的就不用算了 \(a^b\%c=a^{b\%\phi c} gcd(b,c)==1\) \(a^b\%c=a^{b\%\phi c+\phi c} gcd(b,c)!=1\) //#pragma GCC optimize(2) //#pragma GCC optimize(3) //#pragma GCC optimize(4) //#pragma GCC optimize…
题意 题目描述 给你三个正整数,$a,m,b$,你需要求: $a^b \mod m$ 输入输出格式 输入格式: 一行三个整数,$a,m,b$ 输出格式: 一个整数表示答案 输入输出样例 输入样例#1: 复制 2 7 4 输出样例#1: 复制 2 输入样例#2: 复制 998244353 12345 98765472103312450233333333333 输出样例#2: 复制 5333 说明 注意输入格式,$a,m,b$ 依次代表的是底数.模数和次数 样例1解释: $2^4 \mod 7 =…
题目链接:https://www.nowcoder.com/acm/contest/142/A 题目描述 A ternary string is a sequence of digits, where each digit is either 0, 1, or 2. Chiaki has a ternary string s which can self-reproduce. Every second, a digit 0 is inserted after every 1 in the str…
[题目]D. Power Tower [题意]给定长度为n的正整数序列和模数m,q次询问区间[l,r]累乘幂%m的答案.n,q<=10^5,m,ai<=10^9. [算法]扩展欧拉定理 [题解]扩展欧拉定理的形式: $$a^b\equiv a^{b\%\varphi(p)+\varphi(p)} \ \ mod \ \ p \ \ (b\geq \varphi(p))$$ 特别注意当b<φ(p)且(a,p)≠1时不变. 假如现在是三个累乘幂a^(b^c),那么根据扩展欧拉定理: $$a^…
题目传送门 上帝与集合的正确用法 题目描述 根据一些书上的记载,上帝的一次失败的创世经历是这样的: 第一天, 上帝创造了一个世界的基本元素,称做“元”. 第二天, 上帝创造了一个新的元素,称作“α”.“α”被定义为“元”构成的集合.容易发现,一共有两种不同的“α”. 第三天, 上帝又创造了一个新的元素,称作“β”.“β”被定义为“α”构成的集合.容易发现,一共有四种不同的“β”. 第四天, 上帝创造了新的元素“γ”,“γ”被定义为“β”的集合.显然,一共会有16种不同的“γ”. 如果按照这样下去…
4869: [Shoi2017]相逢是问候 Time Limit: 40 Sec  Memory Limit: 512 MBSubmit: 1313  Solved: 471[Submit][Status][Discuss] Description Informatikverbindetdichundmich. 信息将你我连结.B君希望以维护一个长度为n的数组,这个数组的下标为从1到n的正整数.一共有m个操作,可以 分为两种:0 l r表示将第l个到第r个数(al,al+1,...,ar)中的每…
Priests of the Quetzalcoatl cult want to build a tower to represent a power of their god. Tower is usually made of power-charged rocks. It is built with the help of rare magic by levitating the current top of tower and adding rocks at its bottom. If…
P4139 上帝与集合的正确用法 \(2^{2^{2^{\dots}}}\bmod p\) 卡最优解倒数第一祭. 带一下扩展欧拉定理就好了. code: #include <iostream> #include <cstdio> #include <cstring> #include <cmath> using namespace std; const int wx=10000017; int isprime[wx],prime[wx],phi[wx]; i…
Description Informatikverbindetdichundmich. 信息将你我连结.B君希望以维护一个长度为n的数组,这个数组的下标为从1到n的正整数.一共有m个操作,可以 分为两种:0 l r表示将第l个到第r个数(al,al+1,...,ar)中的每一个数ai替换为c^ai,即c的ai次方,其中c是 输入的一个常数,也就是执行赋值ai=c^ai1 l r求第l个到第r个数的和,也就是输出:sigma(ai),l<=i<=rai因为 这个结果可能会很大,所以你只需要输出结…
题目链接 BZOJ4869 题解 这题调得我怀疑人生,,结果就是因为某些地方\(sb\)地忘了取模 前置题目:BZOJ3884 扩展欧拉定理: \[c^a \equiv c^{a \mod \varphi(p) + [a \ge p]p} \pmod p\] 我们发现当我们进行\(0\)操作,就相当于在\(a\)底部添加一层\(c\) 当我们进行得足够多的时候,\(\varphi(p)\)就会取到\(1\),从而不再变化 所以每个位置操作次数其实是有限的,为\(O(logp)\)次 为何是\(O…
Time Limit: 5 Sec  Memory Limit: 128 MBSubmit: 3860  Solved: 1751[Submit][Status][Discuss] Description   根据一些书上的记载,上帝的一次失败的创世经历是这样的: 第一天, 上帝创造了一个世界的基本元素,称做“元”. 第二天, 上帝创造了一个新的元素,称作“α”.“α”被定义为“元”构成的集合.容易发现,一共有两种不同的“α”. 第三天, 上帝又创造了一个新的元素,称作“β”.“β”被定义为“α…
链接:E.简单数据结构1 题意: 给一个长为n的序列,m次操作,每次操作: 1.区间加 2.对于区间,查询 ,一直到- 请注意每次的模数不同.   题解:扩展欧拉定理降幂 对一个数p取log(p)次的欧拉函数等于1,故可将操作2的复杂度降到log(p),可以直接求解.用树状数组的小技巧,可以在log的时间直接求出当前的a[i].具体见代码. #include <bits/stdc++.h> using namespace std; ; const int INF = 0x3f3f3f3f; ;…
题目描述 Informatik verbindet dich und mich. 信息将你我连结. B君希望以维护一个长度为n的数组,这个数组的下标为从1到n的正整数.一共有m个操作,可以分为两种:0 l r表示将第l个到第r个数(al,al+1,...,ar)中的每一个数ai替换为c^ai,即c的ai次方,其中c是输入的一个常数,也就是执行赋值ai=c^ai1 l r求第l个到第r个数的和,也就是输出:sigma(ai),l<=i<=rai因为这个结果可能会很大,所以你只需要输出结果mod…
题目描述 根据一些书上的记载,上帝的一次失败的创世经历是这样的: 第一天, 上帝创造了一个世界的基本元素,称做“元”. 第二天, 上帝创造了一个新的元素,称作“α”.“α”被定义为“元”构成的集合.容易发现,一共有两种不同的“α”. 第三天, 上帝又创造了一个新的元素,称作“β”.“β”被定义为“α”构成的集合.容易发现,一共有四种不同的“β”. 第四天, 上帝创造了新的元素“γ”,“γ”被定义为“β”的集合.显然,一共会有16种不同的“γ”. 如果按照这样下去,上帝创造的第四种元素将会有655…
扩展欧拉定理: \[ a^x \equiv a^{x\mathrm{\ mod\ }\varphi(p) + x \geq \varphi(p) ? \varphi(p) : 0}(\mathrm{\ mod\ }p)\] #include <iostream> #include <cstring> #include <cstdio> using namespace std; typedef long long ll; ll aa, cc; char bb[100000…
题目传送门 题目中的式子很符合扩展欧拉定理的样子.(如果你还不知扩展欧拉定理,戳).对于那一堆糟心的2,我们只需要递归即可,递归边界是模数为1. 另外,本题中好像必须要用快速乘的样子...否则无法通过.... $Code$ #include<cstdio> #include<algorithm> using namespace std; ; int T,p; int phi[lim]; void init_phi() { phi[]=; ;i<=lim;i++) phi[i]…
Bryce1010模板 /**** *扩展欧几里得算法 *返回d=gcd(a,b),和对应等式ax+by=d中的x,y */ long long extend_gcd(long long a,long long b,long long &x,long long &y) { if(a==0&&b==0)return -1;//无最大公约数 if(b==0){x=1;y=0;return a;} long long d=extend_gcd(b,a%b,y,x); y-=a/b…
Code: #include<bits/stdc++.h> #define maxn 10000004 #define ll long long using namespace std; void setIO(string s) { string in=s+".in"; freopen(in.c_str(),"r",stdin); } int cnt; int phi[maxn],vis[maxn],prime[maxn]; ll qpow(ll a,l…
本蒟蒻现在才知带扩展欧拉定理. 对于任意的\(b\geq\varphi(p)\)有 \(a^b\equiv a^{b\ mod\ \varphi(p)+\varphi(p)}(mod\ p)\) 当\(b<\varphi(p)\)有 \(a^b\equiv a^{b\ mod\ \varphi(p)}(mod\ p)\) \(b\)和\(p\)可以不互质 然后这题就简单了... #include<iostream> #include<cstring> #include<…
题目链接 欧拉定理: 当\(a\),\(m\)互质时,\(a^{\phi(m)}\equiv 1 (mod ~ m)\) 扩展欧拉定理: 当\(B>\phi(m)\)时,\(a^B\equiv a^{B~mod~\phi(m)+\phi(m)}\) #include<iostream> #include<cstring> #include<cstdio> #include<cmath> #define int long long using names…
题意 给你 $n$ 个 $w_i$ 和一个数 $p$,$q$个询问,每次询问一个区间 $[l,r] $,求 $w_l ^{w_{l+1}^{{\vdots}^{w_r}}} \ \% p$ 分析 由扩展欧拉定理: $$a^b\equiv \begin{cases} a^{b\%\phi(p)}~~~~~~~~~~~gcd(a,p)=1\\ a^b~~~~~~~~~~~~~~~~~~gcd(a,p)\neq1,b<\phi(p)\\ a^{b\%\phi(p)+\phi(p)}~~~~gcd(a,…