BZOJ 3884 拓展欧拉定理】的更多相关文章

3884: 上帝与集合的正确用法 Time Limit: 5 Sec  Memory Limit: 128 MBSubmit: 4142  Solved: 1907[Submit][Status][Discuss] Description   根据一些书上的记载,上帝的一次失败的创世经历是这样的: 第一天, 上帝创造了一个世界的基本元素,称做“元”. 第二天, 上帝创造了一个新的元素,称作“α”.“α”被定义为“元”构成的集合.容易发现,一共有两种不同的“α”. 第三天, 上帝又创造了一个新的元…
求$$2^{2^{2^{2^{…}}}} mod n$$的值,其中n有1e7. 老实说这题挺有趣的,关键是怎么化掉指数,由于是取模意义下的无限个指数,所以使用欧拉定理一定是可以把指数变为不大于$\varphi(n)$的,但是我们连上一层指数的值都不知道,怎么化阿... 考虑同余定理,把n变为$n=2^k·s$的形式,然后$2^k$先提取出来,这样每向一层模数会减少,最后到1这样最后一层可以得到0的值了,回溯时计算完一层的指数时再把$2^k$乘回去就好了 /** @Date : 2017-09-1…
题目大意:给你一个序列,需要支持区间修改,以及查询一段区间$a_{i}^{a_{i+1}^{a_{i+2}...}}mod\;p$的值,每次询问的$p$的值不同 对于区间修改,由线段树完成,没什么好说的 对于查询,利用"上帝与集合的正确用法"那道题的方法,不断取$\phi(p)$降幂,那么最多迭代$log$层 由于$ai$不一定和$p$互质,需要使用拓展欧拉定理 $ans=ai^{Ans_{i+1}\;mod\;\phi(p)+Ans_{i+1}>=\phi(p)?\phi(p)…
传送门 题意:求$2^{2^{2^{2^{...}}}} \mod p$的值.$p \leq 10^7$ 最开始想到的是$x \equiv x^2 \mod p$,然后发现不会做... 我们可以想到拓展欧拉定理:$a^b \equiv a^{b \mod \varphi (p) + \varphi (p)} \mod p$,而当$b < p$时有更强的结论$a^b \equiv a^{b \mod \varphi (p)} \mod p$.我们发现利用拓展欧拉定理可以递归下去处理$2^{2^{2…
Description   根据一些书上的记载,上帝的一次失败的创世经历是这样的: 第一天, 上帝创造了一个世界的基本元素,称做“元”. 第二天, 上帝创造了一个新的元素,称作“α”.“α”被定义为“元”构成的集合.容易发现,一共有两种不同的“α”. 第三天, 上帝又创造了一个新的元素,称作“β”.“β”被定义为“α”构成的集合.容易发现,一共有四种不同的“β”. 第四天, 上帝创造了新的元素“γ”,“γ”被定义为“β”的集合.显然,一共会有16种不同的“γ”. 如果按照这样下去,上帝创造的第四…
\(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^{...}}…
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…
详见PoPoQQQ的博客.. #include <iostream> #include <cstring> #include <cstdio> #include <algorithm> #define LL long long using namespace std; LL KASE,p; inline LL Get_Phi(LL x) { LL Ret=x; ;i*i<=x;i++) ) { Ret/=i;Ret*=(i-); ) x/=i; } )…
Description   根据一些书上的记载,上帝的一次失败的创世经历是这样的: 第一天, 上帝创造了一个世界的基本元素,称做“元”. 第二天, 上帝创造了一个新的元素,称作“α”.“α”被定义为“元”构成的集合.容易发现,一共有两种不同的“α”. 第三天, 上帝又创造了一个新的元素,称作“β”.“β”被定义为“α”构成的集合.容易发现,一共有四种不同的“β”. 第四天, 上帝创造了新的元素“γ”,“γ”被定义为“β”的集合.显然,一共会有16种不同的“γ”. 如果按照这样下去,上帝创造的第四…
看看我们机房某畸形写的题解:http://blog.csdn.net/sinat_27410769/article/details/46754209 此题为popoQQQ神犇所出,在此orz #include<cstdio> #include<cstring> #include<cmath> #define maxl 10000001 long long ans; long long f[maxl]; bool vis[maxl]; long long pow(long…
[题目链接] 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) –…
Description 根据一些书上的记载,上帝的一次失败的创世经历是这样的: 第一天, 上帝创造了一个世界的基本元素,称做"元". 第二天, 上帝创造了一个新的元素,称作"\(\alpha\)"."\(\alpha\)被定义为"元"构成的集合.容易发现,一共有两种不同的"\(\alpha\)". 第三天, 上帝又创造了一个新的元素,称作"\(\beta\)"."\(\beta\)&qu…
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…
题面 好久以前写的,发现自己居然一直没有写题解=.= 扩展欧拉定理:在$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…
3884: 上帝与集合的正确用法 Time Limit: 5 Sec  Memory Limit: 128 MB[Submit][Status][Discuss] Description   根据一些书上的记载,上帝的一次失败的创世经历是这样的: 第一天, 上帝创造了一个世界的基本元素,称做“元”. 第二天, 上帝创造了一个新的元素,称作“α”.“α”被定义为“元”构成的集合.容易发现,一共有两种不同的“α”. 第三天, 上帝又创造了一个新的元素,称作“β”.“β”被定义为“α”构成的集合.容易…
[题目链接] 点击打开链接 [算法] 通过欧拉拓展定理,列出递推公式 [代码] #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…
理论部分 欧拉定理:若 $a,n$ 为正整数,且 $a,n$ 互质,则 $a^{\varphi (n)} \equiv 1(mod \ n)$. 降幂公式: $$a^b=\begin{cases}a^{b \% \varphi(p)} &  gcd(a,p)=1 \\ a^b &  gcd(a,p)\neq 1,b < \varphi (p) \\ a^{b\% \varphi (p) + \varphi (p)} & gcd(a,p)\neq 1,b \geq \varph…
一道智慧题 其实解这题需要用到扩展欧拉定理, 有了上面的公式,我们不难看出此题的解法. 设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…
Description 根据一些书上的记载,上帝的一次失败的创世经历是这样的: 第一天, 上帝创造了一个世界的基本元素,称做“元”. 第二天, 上帝创造了一个新的元素,称作“α”.“α”被定义为“元”构成的集合.容易发现,一共有两种不同的“α”. 第三天, 上帝又创造了一个新的元素,称作“β”.“β”被定义为“α”构成的集合.容易发现,一共有四种不同的“β”. 第四天, 上帝创造了新的元素“γ”,“γ”被定义为“β”的集合.显然,一共会有16种不同的“γ”. 如果按照这样下去,上帝创造的第四种元…
传送门 •题意 求$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^…
http://www.lydsy.com/JudgeOnline/problem.php?id=3884 拓展欧拉定理 http://blog.csdn.net/Pedro_Lee/article/details/51458773这篇写的不错 我不会用latex...就不写了 #include<bits/stdc++.h> using namespace std; typedef long long ll; ; ll p; int phi[N], pri[N], mark[N]; void I…
因为最近的生活太颓废总是不做题而被老师D了一番, 所以今天晚上到bzoj上去刷了几道水题.....   bzoj 4320: ShangHai2006 Homework 题目大意 维护一个支持两个操作的集合: 1) 插入一个数x 2) 询问集合中所有数中 mod x 最小是多少 解题思路 似乎log家族没有什么好的办法解决这道题? 考虑 sqrt() 的方法. 当询问 x <= sqrt(m) 的时候, 直接存一下就可以了. 当询问 x > sqrt(m) 的时候,把n分成 n / x 块,…
4869: [Shoi2017]相逢是问候 先说点正经的…… 显然做了有限次(我只知道是有限次,而且不会大,别人说是log次?)修改以后会达到不动点,即以后怎么修改都不变了. 然后就随便做了.(3个log不知道是不是暴力啊) 但是需要拓展欧拉定理: p与a不互质时,设c=b mod φ(p)(专门设出来是因为公式不能正常显示),如果b>=φ(p):$a^b ≡ a^{c+φ(p)}$(注意b<φ(p)的时候不能用) 要证明的话可以用数学归纳法证. 可是题目翻车了…… 大家都质疑题目数据有问题…
[BZOJ4869]相逢是问候(线段树,欧拉定理) 题面 BZOJ 题解 根据欧拉定理递归计算(类似上帝与集合的正确用法) 所以我们可以用线段树维护区间最少的被更新的多少次 如果超过了\(\varphi\)的限制 就不用再计算了 如果需要计算就每次暴力算 这样的复杂度\(O(nlog^2)\) #include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #include<…
嘻嘻, 从文化课中逃脱出来, 很痛苦啊, 英语已经近半年没学了,语文水平水的一批,在其他班里受虐待. 百废待兴. 因为曾经学了一段时间的省选,所以被老师拉回来送人头考试啦. 听说4.5 SDOI一轮哎, 什么都不会,最近就是推推莫比乌斯反演(我也就这玩意念念不忘了) 反正就上星期六,星期天和下一周四啦. 明天计划 https://ac.nowcoder.com/acm/contest/375/D?&headNav=acm BZOJ 2142 礼物 组合数学+数论 BZOJ 3884 上帝与集合的…
## 本蒟蒻的小整理qwq--持续更新(咕咕咕) 数据结构 数据结构 知识点梳理 数据结构--线段树 推荐yyb dalao的总结--戳我 以后维护线段树还是把l,r写到struct里面吧,也别写len了,调试不好调qwq 初始化和叶节点初始化不太一样qwq,有的需要统一初始化的就一定注意不要写到if(l==r)里面qwq 求区间最大子段和 例题:codevs动态最大子段和 维护区间和,区间前缀最大子段和,区间后缀最大子段和,区间最大子段和.然后合并.(注意这种跨左右子树还有可能会有贡献的线段树…
文章目录 前言 素数与同余 线性筛部分 素数 线性递推逆元 指数循环节降幂 当求逆元时模数与求逆元的数有可能不互质时的处理方法 一个神奇的结论 拓展欧拉定理 杂乱的一些性质/技巧 二进制枚举子集 异或前缀和 O(n)预处理popcount 多项式一类 组合数学 卡特兰数通项 斯特林数 错排公式 二项式反演 前言 感觉距离scoi2019scoi2019scoi2019的时间不多了博主因为太弱所以现在慌得一批,现在尝试梳理一些小知识点顺便复习. 素数与同余 线性筛部分 常识向,直接贴代码了,大佬们…
正解:拓展欧拉定理 解题报告: 首先放上拓欧公式? 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就可以一路再返回回去…
16-3-25  —— bzoj 2049 [Sdoi2008]Cave 洞穴勘测:LCT入门 bzoj 2002 [Hnoi2010]Bounce 弹飞绵羊:LCT Tsinsen A1303. tree(伍一鸣):LCT+传标 bzoj 2843 极地旅行社:LCT练手题 bzoj3091 城市旅行:LCT+数学分析 16-3-26 ——14 bzoj 3732 Network:最短路+倍增 | LCT bzoj 2594 [Wc2006]水管局长数据加强版:LCT维护最小生成树 bzoj2…
基本上只是整理了一下框架,具体的学习给出了个人认为比较好的博客的链接. PART1 数论部分 最大公约数 对于正整数x,y,最大的能同时整除它们的数称为最大公约数 常用的:\(lcm(x,y)=xy\gcd(x,y)\) 裴蜀定理 定理:对于方程\(ax+by=c\),其存在解的充要条件是\(gcd(a,b)|c\),可以拓展到n元的方程. 证明的话应该自己yy一下还是很容易(显然可得),不过要是想要严谨证明还是去百度吧qwq 扩展欧几里得定理 首先我们都知道\(gcd(a,b)=gcd(b,a…