传送门 •题意 求$2^{2^{2^{2^{2^{2^{...^{2}}}}}}}$ (无穷个2) 对p取模的值 •思路 设答案为f(p) $2^{2^{2^{2^{2^{2^{...^{2}}}}}}}\%p$ $=2^{(2^{2^{2^{2^{2^{...^{2}}}}}}\%\varphi(p)+ \varphi(p))}\%p$ $=2^{(2^{2^{2^{2^{2^{...^{2}}}}}}\%\varphi(p)+ \varphi(p))}\%p$ $=2^{(2^{(2^{2^…
3884: 上帝与集合的正确用法 Time Limit: 5 Sec  Memory Limit: 128 MB[Submit][Status][Discuss] Description   根据一些书上的记载,上帝的一次失败的创世经历是这样的: 第一天, 上帝创造了一个世界的基本元素,称做“元”. 第二天, 上帝创造了一个新的元素,称作“α”.“α”被定义为“元”构成的集合.容易发现,一共有两种不同的“α”. 第三天, 上帝又创造了一个新的元素,称作“β”.“β”被定义为“α”构成的集合.容易…
Description 根据一些书上的记载,上帝的一次失败的创世经历是这样的: 第一天, 上帝创造了一个世界的基本元素,称做"元". 第二天, 上帝创造了一个新的元素,称作"\(\alpha\)"."\(\alpha\)被定义为"元"构成的集合.容易发现,一共有两种不同的"\(\alpha\)". 第三天, 上帝又创造了一个新的元素,称作"\(\beta\)"."\(\beta\)&qu…
Description 根据一些书上的记载,上帝的一次失败的创世经历是这样的: 第一天, 上帝创造了一个世界的基本元素,称做“元”. 第二天, 上帝创造了一个新的元素,称作“α”.“α”被定义为“元”构成的集合.容易发现,一共有两种不同的“α”. 第三天, 上帝又创造了一个新的元素,称作“β”.“β”被定义为“α”构成的集合.容易发现,一共有四种不同的“β”. 第四天, 上帝创造了新的元素“γ”,“γ”被定义为“β”的集合.显然,一共会有16种不同的“γ”. 如果按照这样下去,上帝创造的第四种元…
Description   根据一些书上的记载,上帝的一次失败的创世经历是这样的: 第一天, 上帝创造了一个世界的基本元素,称做“元”. 第二天, 上帝创造了一个新的元素,称作“α”.“α”被定义为“元”构成的集合.容易发现,一共有两种不同的“α”. 第三天, 上帝又创造了一个新的元素,称作“β”.“β”被定义为“α”构成的集合.容易发现,一共有四种不同的“β”. 第四天, 上帝创造了新的元素“γ”,“γ”被定义为“β”的集合.显然,一共会有16种不同的“γ”. 如果按照这样下去,上帝创造的第四…
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=3884 [题意] 求2^2^2… mod p [思路] 设p=2^k * q+(1/0),使q为一个奇数 第二项如果是1,mod 1 为0可以忽略. 则我们求: 2^2^2… mod p =2^k*(2^(2^2…-k) mod q) 因为q是奇数所以与2互质,根据欧拉定理: a^phi(p) mod p=1,(a,p)=1 转化为: 2^k*(2^(2^2…mod phi(p) –…
PoPoQQQ大爷太神了 只要用欧拉定理递归下去就好了.... 然而还是有些细节没考虑好: $(P,2) \neq 1$时分解$P=2^k*q$的形式,然后变成$2^k(2^{(2^{2^{...}}-k)\ mod\ phi(P)}\ mod\ P)$,不要掉了$-k$ 然而取模的时候别乱取模,比如那个$2^k$不应该取模 #include <iostream> #include <cstdio> #include <cstring> #include <alg…
\(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^{...}}…
题面 好久以前写的,发现自己居然一直没有写题解=.= 扩展欧拉定理:在$b>φ(p)$时有$a^b \equiv a^{b\%φ(p)+φ(p)}(mod$ $p)$ 然后每次递归那个$a^{b\%φ(p)}$的部分,最后在$φ(p)=1$时返回即可 #include<cstdio> #include<cstring> #include<algorithm> using namespace std; ; int pri[N],npr[N],phi[N]; long…
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为2^2^2^2^2.....显然,b要比φ(p)要大,所以可以直接套公式 modp时的答案 ans(p)=pow(2,ans(φ(p))+φ(p))%p 而边界是p=1时,ans(1)显然为0,这样递推就好了 # include<iostream> # include<cstdio> # include<cmath> # include<algorithm> con…
上帝与集合的正确用法 [问题描述] [输入格式] 第一行一个T,接下来T行,每行一个正整数p,代表你需要取模的值. [输出格式] T行,每行一个正整数,为答案对p取模后的值. [样例输入] 3236 [样例输出] 014 [数据范围] 对于100%的数据,T<=1000,p<=10^7 题解:   ①->②:把模数 p 拆成 2kq 的形式,其中 q 是奇数 ②->③: 将上式左右同除以2k 不会同余的蒟蒻只能这么推了 ③->④: 此时 q 是奇数,必定与 2n 互质 则套用…
Description   根据一些书上的记载,上帝的一次失败的创世经历是这样的: 第一天, 上帝创造了一个世界的基本元素,称做“元”. 第二天, 上帝创造了一个新的元素,称作“α”.“α”被定义为“元”构成的集合.容易发现,一共有两种不同的“α”. 第三天, 上帝又创造了一个新的元素,称作“β”.“β”被定义为“α”构成的集合.容易发现,一共有四种不同的“β”. 第四天, 上帝创造了新的元素“γ”,“γ”被定义为“β”的集合.显然,一共会有16种不同的“γ”. 如果按照这样下去,上帝创造的第四…
题目传送门 上帝与集合的正确用法 题目描述 根据一些书上的记载,上帝的一次失败的创世经历是这样的: 第一天, 上帝创造了一个世界的基本元素,称做“元”. 第二天, 上帝创造了一个新的元素,称作“α”.“α”被定义为“元”构成的集合.容易发现,一共有两种不同的“α”. 第三天, 上帝又创造了一个新的元素,称作“β”.“β”被定义为“α”构成的集合.容易发现,一共有四种不同的“β”. 第四天, 上帝创造了新的元素“γ”,“γ”被定义为“β”的集合.显然,一共会有16种不同的“γ”. 如果按照这样下去…
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…
P4139 上帝与集合的正确用法 题目描述 根据一些书上的记载,上帝的一次失败的创世经历是这样的: 第一天, 上帝创造了一个世界的基本元素,称做"元". 第二天, 上帝创造了一个新的元素,称作"α"."α"被定义为"元"构成的集合.容易发现,一共有两种不同的"α". 第三天, 上帝又创造了一个新的元素,称作"β"."β"被定义为"α"构成的集合.容…
上帝与集合的正确用法 \(T\) 组数据,每次给定 \(p\),求 \[\left(2^{\left(2^{\left(2^{\cdots}\right)}\right)}\right)\bmod p \] 数据范围:\(1\le T\le 1000\),\(1\le p\le 10^7\). 这篇题解主要是给自己看的,因为小蒟蒻从未见过这种骚操作. 首先这个式子虽是无限的,但是答案是固定的. 先来几个引理 \[a^{\varphi(p)}\equiv1\pmod p \] \[a^b\equi…
[BZOJ3884]上帝与集合的正确用法(欧拉定理,数论) 题面 BZOJ 题解 我们有欧拉定理: 当\(b \perp p\)时 \[a^b≡a^{b\%\varphi(p)}\pmod p \] 否则 当\(b≥\varphi(p)\)时 \[a^b≡a^{b\%\varphi(p)+\varphi(p)}\pmod p \] 这道题里面\(2\)的无穷次方显然会比\(\varphi(p)\)大 所以,递归调用这个公式 因此每次\(p\)都会变成\(\varphi(p)\) 所以,\(\va…
上帝与集合的正确用法 Time Limit: 5 Sec  Memory Limit: 128 MB[Submit][Status][Discuss] Description Input 第一行一个T,接下来T行,每行一个正整数p,代表你需要取模的值. Output T行,每行一个正整数,为答案对p取模后的值. Sample Input 3 2 3 6 Sample Output 0 1 4 HINT 对于100%的数据,T<=1000,p<=10^7 Solution 我们运用欧拉定理: 然…
题目大意 让你求\(2^{2^{2^{\cdots}}}(mod)P\)的值. 前置知识 知识1:无限次幂怎么解决 让我们先来看一道全国数学竞赛的一道水题: 让你求解:\(x^{x^{x^{\cdots}}}=2\)方程的解. 对于上面的无限次幂,我们可以把这个式子移上去,得到了\(x^{2}=2\). 因为指数的原因,所以我们可以直接得到了\(x=\sqrt{2}\). 以上的问题,启示我们对于这一些无限次幂可以转移来解决. 以上的东西可能用不到 知识2:欧拉定理和扩展欧拉定理 详细请出门左拐…
感觉是今天洛谷月赛T3的弱化版,会写洛谷T3之后这题一眼就会写了... 还是欧拉扩展定理 于是就在指数上递归%phi(p)+phi(p)直到1,则后面的指数就都没用了,这时候返回,边回溯边快速幂.因为一个数最多求log次phi就变成1,所以复杂度为O(logp*sqrt(p)),这题线性筛是比直接求要慢的... #include<iostream> #include<cstring> #include<cstdlib> #include<cstdio> #i…
题目描述 根据一些书上的记载,上帝的一次失败的创世经历是这样的: 第一天, 上帝创造了一个世界的基本元素,称做“元”. 第二天, 上帝创造了一个新的元素,称作“α”.“α”被定义为“元”构成的集合.容易发现,一共有两种不同的“α”. 第三天, 上帝又创造了一个新的元素,称作“β”.“β”被定义为“α”构成的集合.容易发现,一共有四种不同的“β”. 第四天, 上帝创造了新的元素“γ”,“γ”被定义为“β”的集合.显然,一共会有16种不同的“γ”. 如果按照这样下去,上帝创造的第四种元素将会有655…
题目描述 根据一些书上的记载,上帝的一次失败的创世经历是这样的:  第一天,上帝创造了一个世界的基本元素,称做“元”.  第二天,上帝创造了一个新的元素,称作“α”.“α”被定义为“元”构成的集合.容易发现,一共有两种不同的“α”.  第三天,上帝又创造了一个新的元素,称作“β”.“β”被定义为“α”构成的集合.容易发现,一共有四种不同的“β”.  第四天,上帝创造了新的元素“γ”,“γ”被定义为“β”的集合.显然,一共会有16种不同的“γ”.  如果按照这样下去,上帝创造的第四种元素将会有65…
正解:拓展欧拉定理 解题报告: 首先放上拓欧公式? if ( b ≥ φ(p) )  ab ≡ ab%φ(p)+φ(p)(mod p)else ab≡ab mod φ(p) (mod p) 首先利用扩展欧拉定理. 原式=2(剩余数%φ(p)+φ(p)) 而 剩余数% φ(p)又可以进行分解,所以这个过程可以用递归实现. 注意边界条件:当p=1时,余数自然为0. 然后就最最最不用动脑子的思路啊,我们一路做下去做下去,一直膜膜膜膜膜%,总有一天φ(p)是1了然后此时mod一定是0就可以一路再返回回去…
题目大意:多次询问,每次给你$p$询问$2^{2^{2^{\dots}}}\bmod p$ 题解:扩展欧拉定理,求出$\varphi(p)$即可.因为$2^{2^{2^{\dots}}}>>p$,所以其实每一次算的时候都可以直接加上$\varphi(p)$,不用判断 卡点:无 C++ Code: #include <cstdio> namespace Math { const int N = 1e7 + 1; int pri[N], ptot, phi[N]; bool notp[…
[题目链接] 点击打开链接 [算法] 通过欧拉拓展定理,列出递推公式 [代码] #include<bits/stdc++.h> using namespace std; typedef long long ll; ll T,N; map<ll,ll> M; template <typename T> inline void read(T &x) { ll f = ; x = ; char c = getchar(); for (; !isdigit(c); c…
http://www.lydsy.com/JudgeOnline/problem.php?id=3884 欧拉降幂公式 #include<cmath> #include<cstdio> using namespace std; int get_phi(int p) { int phi=p; int m=sqrt(p); ;i<=m;++i) ) { phi=phi/i*(i-); ) p/=i; } ) phi=phi/p*(p-); return phi; } int Po…
扩展欧拉定理:$a^{b} \equiv a^{b Mod \varphi  (p) + \varphi  (p)}  (Mod  p)  $ $(b \geq \varphi (p))$ . 这道题中$\varphi (p)$一定是一个偶数,所以余数为$0$. 这样子的话只需要递归求解就可以了,可以知道一定不会超过$log$层. 时间复杂度$O(maxN + Tlognlogn)$. Code: #include <cstdio> #include <cstring> using…
Description 根据一些书上的记载,上帝的一次失败的创世经历是这样的: 第一天, 上帝创造了一个世界的基本元素,称做“元”. 第二天, 上帝创造了一个新的元素,称作“α”.“α”被定义为“元”构成的集合.容易发现,一共有两种不同的“α”. 第三天, 上帝又创造了一个新的元素,称作“β”.“β”被定义为“α”构成的集合.容易发现,一共有四种不同的“β”. 第四天, 上帝创造了新的元素“γ”,“γ”被定义为“β”的集合.显然,一共会有16种不同的“γ”. 如果按照这样下去,上帝创造的第四种元…
Description   根据一些书上的记载,上帝的一次失败的创世经历是这样的: 第一天, 上帝创造了一个世界的基本元素,称做“元”. 第二天, 上帝创造了一个新的元素,称作“α”.“α”被定义为“元”构成的集合.容易发现,一共有两种不同的“α”. 第三天, 上帝又创造了一个新的元素,称作“β”.“β”被定义为“α”构成的集合.容易发现,一共有四种不同的“β”. 第四天, 上帝创造了新的元素“γ”,“γ”被定义为“β”的集合.显然,一共会有16种不同的“γ”. 如果按照这样下去,上帝创造的第四…