乘法逆元
Icefox_zhx
这个作者很懒,什么都没留下…
展开
-
luogu1313【2011提高】计算系数(求组合数取模)
拖了很久的组合数取模求法。。。先更一个,逆元+快速幂。 何为逆元?又有人称之为数论倒数。那a的数论倒数当然就是a^-1啦,然而数论中都是整数,所以严格地定义为 a关于p的逆元为满足ax≡1(mod p)ax\equiv1(mod\ p)的最小正整数x。那逆元有什么用呢?四则运算的取余运算基本是相同的,但是除法是不满足的,即a/b%p!=(a%p)/(b%p)%p,那怎么办呢。。。a/b=a*b^-原创 2017-09-14 21:12:22 · 313 阅读 · 0 评论 -
bzoj1951 [Sdoi2010]古代猪文(Lucas定理+CRT+逆元)
题目就是求 G∑k|nCkn%P,P=999911659G^{\sum\limits_{k|n}C_n^k}\%P,P=999911659 根据欧拉定理,我们就是要求∑k|nCkn%ϕ(p)\sum\limits_{k|n}C_n^k\%\phi(p) 因为P是个素数,所以phi(p)=p−1phi(p)=p-1 n很大,所以计算这个组合数求模要用Lucas定理来算Lucas定理:porta原创 2018-04-05 22:36:52 · 266 阅读 · 0 评论 -
bzoj2186 [Sdoi2008]沙拉公主的困惑(数论)
求1~n!中与m!互质的数的个数。 最后结论就是n!∏pi−1pin!\prod \frac{p_i-1}{p_i} 有点像欧拉函数那样,我们线性筛预处理素数,阶乘,逆元即可。原创 2018-04-05 16:37:29 · 235 阅读 · 0 评论 -
bzoj1965 [Ahoi2005]SHUFFLE 洗牌(快速幂+乘法逆元+快速乘)
我们发现第x张牌经过一次洗牌后会变成第2x%(n+1)张。 因此第x张牌经过m次洗牌会变成第x2m%(n+1)x2^m\%(n+1)张牌。 我们就是要求x2m≡lmodn+1x2^m\equiv l \mod n+1,因为n+1肯定是奇数,所以(2,n+1)=1. 所以x=l∗inv(2)mx=l*inv(2)^m,2的逆元为(n/2+1)。 然后乘法会爆ll,推荐O(1)快速乘。#incl原创 2018-04-04 10:55:08 · 256 阅读 · 0 评论 -
bzoj2242 [SDOI2011]计算器(BSGS+Hash表+乘法逆元)
操作3是bsgs裸题。 注意特判a是p的倍数的情况。 没想到死在了操作2上了【再见】原创 2018-04-03 22:55:17 · 528 阅读 · 0 评论 -
poj3243 Clever Y(EXBSGS+Hash表+欧拉函数)
扩展BSGS,经典的BSGS只能求解p为质数时的离散对数。那么如果p不是质数呢?其实我们发现p是不是质数不重要,重要的是(a,p)==1.at≡bmodpa^t\equiv b\mod p 如果(a,p)!=1,我们设为k,a=Ak,p=Pk,b=Bk(显然当b不是k的倍数时无解) 那么我们有Akt≡BkmodPk{Ak}^t\equiv {Bk}\mod {Pk} 可以把k除掉,得到Aat−原创 2018-04-03 21:43:41 · 344 阅读 · 0 评论 -
bzoj3122 [Sdoi2013]随机数生成器(BSGS+Hash表)
首先把特殊情况特判掉。然后对于递推式xi+1=axi+bx_{i+1}=ax_i+b 我们可以搞一下通项:xi+1+ba−1=ai(x1+ba−1)x_{i+1}+\frac{b}{a-1}=a^i(x_1+\frac{b}{a-1})。 可以看做ak≡bmodpa^k\equiv b\mod p 其中b=t+ba−1x1+ba−1%pb=\frac{t+\frac{b}{a-1}}{x_1+原创 2018-04-03 20:12:10 · 199 阅读 · 0 评论 -
bzoj1004 [HNOI2008]Cards(burnside引理+背包dp)
题目保证给出的置换再加上一个单位元之后是一个群。因此我们就是要求集合M关于置换群的轨道数,根据burnside引理,就是对每一个置换求不动点个数,我们可以dfs出每一个置换的所有轮换,然后跑一个三维背包dp来计算可行的方案数。复杂度O(mn3)O(mn^3)。最后求一个逆元。 网上那些什么没有不动点的都是假的,HN数据水罢了-,- 比如你看这组样例:2 2 0 1 7 3 4 1 2原创 2018-03-27 15:54:43 · 264 阅读 · 0 评论 -
bzoj3028 食物(生成函数+逆元)
生成函数裸题,先写出各项的生成函数,然后乘起来,然后利用麦克劳林展开,计算n阶导,带入x=0,算出答案是C3n+2C_{n+2}^3. 具体题解见 这里原创 2017-11-09 21:40:24 · 450 阅读 · 1 评论 -
CF396A On Number of Decompositions into Multipliers(数论+组合数学)
将m分解质因数, m=∏ti=1pkiim=\prod_{i=1}^t p_i^{k_i} 则ans=∏ti=1C(n+ki−1,n−1)ans=\prod_{i=1}^t C(n+k_i-1,n-1),相当于对于每一个pip_i,我要把kik_i分配到n个位置上去,可以为0,问方案数。#include <cstdio>#include <cstring>#include <algorith原创 2018-03-06 22:28:25 · 327 阅读 · 0 评论 -
NKOI Round 8(12.14)
NKOI Round 8 T1.呼叫机房的同学(组合数学)T2.突然点亮的故障灯(tarjan缩点+拓扑序dp+线段树优化建图)T3.灵异电梯(状压dp)T1这题神啊。首先我们可以O(n)预处理组合数(O(n)算出所有逆元,O(n)做两个前缀积)。然后我们发现可以O(n2)O(n^2) 算一个点到一个矩形内的所有点的方案数之和。就是一堆组合数加起来。然后我们发现可以一行一行的算,每一行都是Cba+原创 2017-12-15 17:19:39 · 466 阅读 · 1 评论 -
CIA8 【TJOI2015】概率论(加强版)(生成函数+期望+卡特兰数+逆元)
这题居然被leoly加强了啊orz,形态数就是卡特兰数h,叶子节点总数f可以用生成函数+卷积推出,叶子节点平方的总数s可以由上两个函数推出。这题强啊,过程懒得写啊。把结论写下: hn=∑i=0n−1hi∗hn−1−i=Cn2nn+1h_n=\sum\limits_{i=0}^{n-1}h_i*h_{n-1-i}=\frac{C_{2n}^n}{n+1} fn=∑i=0n−12∗hi∗fn−1−i原创 2017-11-08 08:42:39 · 882 阅读 · 1 评论 -
51nod1228 序列求和(伯努利数+数学)
求S(n,k)=∑i=1nikS(n,k)=\sum\limits_{i=1}^ni^k 可以O(k2)O(k^2) 递推。 用伯努利数可以做到O(k)O(k) ∑i=1nik=1k+1∑i=1k+1Cik+1∗Bk+1−i∗(n+1)i\sum\limits_{i=1}^ni^k=\frac{1}{k+1}\sum\limits_{i=1}^{k+1}C_{k+1}^i*B_{k+1-i}*原创 2018-05-02 09:04:37 · 544 阅读 · 0 评论