Luogu P4139 上帝与集合的正确用法【扩展欧拉定理】By cellur925

题目中的式子很符合扩展欧拉定理的样子。(如果你还不知扩展欧拉定理,戳)。对于那一堆糟心的2,我们只需要递归即可,递归边界是模数为1.
另外,本题中好像必须要用快速乘的样子...否则无法通过...。
$Code$
#include<cstdio>
#include<algorithm> using namespace std;
const int lim=; int T,p;
int phi[lim]; void init_phi()
{
phi[]=;
for(int i=;i<=lim;i++) phi[i]=i;
for(int i=;i<=lim;i++)
if(phi[i]==i)
for(int j=i;j<=lim;j+=i)
phi[j]=phi[j]/i*(i-);
} int mul(int a,int b,int mo)
{
int ans=;
while(b)
{
if(b&) ans=(ans%mo+a%mo)%mo;
b>>=;
a=a%mo*%mo;
}
return ans;
} int ksm(int a,int b,int mo)
{
int ans=;
while(b)
{
if(b&) ans=mul(ans,a,mo)%mo;
b>>=;
a=mul(a,a,mo)%mo;
}
return ans;
} int work(int mod)
{
if(mod==) return ;
return ksm(,work(phi[mod])+phi[mod],mod);
} int main()
{
init_phi();
scanf("%d",&T);
while(T--)
{
scanf("%d",&p);
printf("%d\n",work(p));
}
return ;
}

Luogu P4139 上帝与集合的正确用法【扩展欧拉定理】By cellur925的更多相关文章
- 洛谷P4139 上帝与集合的正确用法 [扩展欧拉定理]
题目传送门 上帝与集合的正确用法 题目描述 根据一些书上的记载,上帝的一次失败的创世经历是这样的: 第一天, 上帝创造了一个世界的基本元素,称做“元”. 第二天, 上帝创造了一个新的元素,称作“α”. ...
- 【bzoj3884】上帝与集合的正确用法 扩展欧拉定理
题目描述 根据一些书上的记载,上帝的一次失败的创世经历是这样的: 第一天, 上帝创造了一个世界的基本元素,称做“元”. 第二天, 上帝创造了一个新的元素,称作“α”.“α”被定义为“元”构成的集合.容 ...
- luogu P4139 上帝与集合的正确用法(扩展欧拉定理)
本蒟蒻现在才知带扩展欧拉定理. 对于任意的\(b\geq\varphi(p)\)有 \(a^b\equiv a^{b\ mod\ \varphi(p)+\varphi(p)}(mod\ p)\) 当\ ...
- Luogu P4139 上帝与集合的正确用法
题目链接:Click here Solution: 这道题就考你会不会扩展欧拉定理,根据扩展欧拉定理可知 \[ a^b \equiv a^{(b\,mod\,\varphi(p))+\varphi(p ...
- BZOJ.3884.上帝与集合的正确用法(扩展欧拉定理)
\(Description\) 给定p, \(Solution\) 欧拉定理:\(若(a,p)=1\),则\(a^b\equiv a^{b\%\varphi(p)}(mod\ p)\). 扩展欧拉定理 ...
- bzoj3884: 上帝与集合的正确用法 扩展欧拉定理
题意:求\(2^{2^{2^{2^{...}}}}\%p\) 题解:可以发现用扩展欧拉定理不需要很多次就能使模数变成1,后面的就不用算了 \(a^b\%c=a^{b\%\phi c} gcd(b,c) ...
- BZOJ 3884: 上帝与集合的正确用法 扩展欧拉定理 + 快速幂
Code: #include<bits/stdc++.h> #define maxn 10000004 #define ll long long using namespace std; ...
- BZOJ3884题解上帝与集合的正确用法--扩展欧拉定理
题目链接 https://www.lydsy.com/JudgeOnline/problem.php?id=3884 分析 扩展欧拉定理裸题 欧拉定理及证明: 如果\((a,m)=1\),则\(a^{ ...
- 洛谷 P4139 上帝与集合的正确用法 解题报告
P4139 上帝与集合的正确用法 题目描述 根据一些书上的记载,上帝的一次失败的创世经历是这样的: 第一天, 上帝创造了一个世界的基本元素,称做"元". 第二天, 上帝创造了一个新 ...
随机推荐
- eclipse中progress一直在刷新问题处理
- FPGA 功耗结构设计
1 相对于ASIC.FPGA是耗电器件,不适合超低功耗设计技术. 2 在CMOS技术中电路的动态功耗与门和金属引线的充放电有关,电容消耗电流的一般方程为 I=V* C*f V 是电压.对于FPGA来说 ...
- 读写锁(pthread)
读写锁: 用于对于某个给定资源的共享访问,而不是像互斥锁那样,将所有试图进入临界区的线程都阻塞住 相关内容: 线程互斥锁 分配规则:(写独占,读共享) 1.只要没有线程持有某个给定的读写锁用于写,那么 ...
- IOS------Warning
本文转载至 http://blog.csdn.net/shijiucdy/article/details/8755667 处理警告: 1,Validate Project Settings(updat ...
- Iterator && Iterable Collection && Map
Java集合类库将集合的接口与实现分离.同样的接口,可以有不同的实现. Java集合类的基本接口是Collection接口.而Collection接口必须实现Iterable接口. 以下图表示集合框架 ...
- Axure Base 09 带遮罩层的弹出框
示例原型下载:小楼Axure原创元件-带遮罩层的弹出框 实现目标: 1. 点击按钮弹出带遮罩层的对话框: 2. 页面上下左右滚动时,弹出的对话框水平和垂直始终居中. 实现步骤如下: 1. 拖入 ...
- 在Java中如何正确地终止一个线程
1.使用Thread.stop()? 极力不推荐此方式,此函数不安全且已废弃,具体可参考Java API文档 2.设置终止标识,例如: import static java.lang.System.o ...
- 20170225-第三件事:FR0002测试
第三件事:FR0002测试 MATNR WERKS BERID 800000217 I010 问题,上for all entrys… 1 ...
- 注意css 小细节 颜色能缩写尽量缩写
如 background: #333333; 改为 background: #333;
- I2S
音频数据传输而制定: Inter—IC Sound : 单线 时钟和数据一条线,时分复用: 标准的I2S总线电缆是由3根串行导线组成的:1根是时分多路复用(简称TDM)数据线:1根是字选择线:1根是时 ...