首页 > 其他分享 >【洛谷】P4139 上帝与集合的正确用法(扩展欧拉定理)

【洛谷】P4139 上帝与集合的正确用法(扩展欧拉定理)

时间:2023-03-16 19:23:21浏览次数:61  
标签:phi 洛谷 int P4139 solve return include 欧拉

原题链接

题意

求:

\[2^{2^{2^{\ldots}}} \mod p \]

可以证明这个式子一定为一个常数。

\(1 \leq p \leq 10^7\)

思路

根据扩展欧拉定理,可以得到:

\[2^{2^{2^{\ldots}}} \equiv 2^{(2^{2^{\ldots}} \mod \varphi(p)+\varphi(p))}\pmod p \]

这个式子可以递归下去,边界条件自然就是 \(p=1\) 的情况,而欧拉函数可以在线性筛的同时 \(O(n)\) 预处理得到。

code:

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int N=1e7+10;
int prime[N],tot,phi[N];bool vis[N];
void init()
{
	for(int i=2;i<N;i++)
	{
		if(!vis[i]) prime[++tot]=i,phi[i]=i-1;
		for(int j=1;j<=tot&&prime[j]*i<N;j++)
		{
			vis[prime[j]*i]=true;
			if(i%prime[j]==0) {vis[prime[j]*i]=true,phi[prime[j]*i]=phi[i]*prime[j];break;}
			phi[i*prime[j]]=phi[i]*(prime[j]-1);
		}
	}
}
int mul(int a,int b,int p){int res=1;while(b) ((b&1)&&(res=1ll*res*a%p)),a=1ll*a*a%p,b>>=1;return res;}
int solve(int p)
{
	if(p==1) return 0;
	return mul(2,solve(phi[p])+phi[p],p);
}
int main()
{
	init();int T,p;scanf("%d",&T);while(T--) scanf("%d",&p),printf("%d\n",solve(p));
	return 0;
}

标签:phi,洛谷,int,P4139,solve,return,include,欧拉
From: https://www.cnblogs.com/ListenSnow/p/17223863.html

相关文章

  • 「题解」洛谷 P5644 [PKUWC2018]猎人杀
    题意:初始有\(n\)个人,每个人的权值是\(w_i\),假设这一轮剩余还没嘎掉的人总权值是\(s\),那么这一轮它有\(\frac{w_i}{s}\)的概率嘎掉。求\(1\)活到最后的概率是多少。......
  • 欧拉定理学习笔记
    费马小定理:当$a,p\in\mathbb{Z}$且\(p\)为质数,$a\not\equiv0\pmod{p}$时,有:\[a^{p-1}\equiv1\pmod{p}\]故\(a^b\equiva^{b\mod(p-1)}\pmod{p}\)欧......
  • 洛谷-P9147 题解
    正文最坏时间复杂度:\(\mathcal{O}(n)\)真不愧是签到题,差点没签上。。。我相信题意各位肯定很理解了,非常简单,但如何解决就是个问题。首先考虑朴素解法,建立一个求最长连......
  • 【洛谷】P2414 [NOI2011] 阿狸的打字机(AC自动机+离线询问)
    原题链接题意给定\(n\)个字符串,\(m\)次询问一个字符串\(x\)在另一个字符串\(y\)的出现次数。\(1\leqn,m\leq10^5\)。思路要解决多个字符串的问题,不难想到......
  • P4387 洛谷做题笔记 2023313
    P4387洛谷做题笔记2023/3/13这道题的关键点在于,在入栈的同时可以完成出栈操作,这就需要在每一次压入时检测是否出栈。这道题还有一个易错点,就是在每一次询问之后,还必须......
  • 【洛谷】P4457 [BJOI2018]治疗之雨(期望+高斯消元)
    原题链接题意初始时玩家有\(p\)滴血,满血\(n\)滴,每个回合会进行如下操作:若当前还没有满血,则以\(\frac{1}{m+1}\)的概率增加一滴血;\(k\)次判定,每次以\(\frac......
  • 【洛谷】P4206 [NOI2005] 聪聪与可可(概率+记忆化搜索)
    原题链接题意给定一张\(n\)个节点\(m\)条边的无向图,初始时,A_zjzj在\(S\),fxt在\(T\),现在A_zjzj要前去抓住fxt。A_zjzj只会往使得两人的最短距离减\(1\)......
  • 质数、约数、欧拉函数、欧几里得
    质数试除法判定质数boolisprime(intx){ if(x==1) returnfalse; if(x==2) returntrue; for(inti=2;i<=x/i;i++) if(x%i==0) returnfals......
  • 洛谷 P1015 回文数
    P1015回文数https://www.luogu.com.cn/problem/P1015原题很明显的高精度,(1999年竟然就考主要有:高精度加法(含进位)、高精度判断回文数以及可以把字符串转成数字数组......
  • 洛谷-2822
    洛谷-2652key思路有个modk的想法很好,然后就是对于一遍一遍的询问进行前缀和优化,但有个问题就是算出来的s矩阵最开始是个下三角矩阵,但是根据前缀和公式来看,s[i][j]上方......