![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数论杂集
文章平均质量分 88
Cold_Chair
我XXX就是饿死,死外边,从这里跳下去,也不会再做你九条可怜一个测试点
展开
-
「NOI2017」泳池
传送门.Code:#include<bits/stdc++.h>#define fo(i, x, y) for(int i = x, B = y; i <= B; i ++)#define ff(i, x, y) for(int i = x, B = y; i < B; i ++)#define fd(i, x, y) for(int i = x, ...原创 2019-06-16 21:08:13 · 450 阅读 · 0 评论 -
数列特征方程学习小记
参考资料:《组合数学》特征方程这个东西是用来求非齐次常数递推式的通项公式的,简单地说,就是:有一数列fff,f[0..(k−1)]f[0..(k-1)]f[0..(k−1)]为定值;对于f[i](i&amp;gt;=k)f[i](i&amp;gt;=k)f[i](i&gt;=k),有f[i]=∑j=1kf[i−j]∗b[j]f[i]=\sum_{j=1}^kf[i-j]*b[j]f[i]=...原创 2018-12-07 22:48:15 · 1416 阅读 · 0 评论 -
51nod 1355 斐波那契的最小公倍数
原题链接.题解:这题肯定是我做过的最简单的八级算法题了。设FiFiFi为斐波拉契序列的第i项。通过打表可得: gcd(Fn,Fm)=Fgcd(n,m)gcd(Fn,Fm)=Fgcd(n,m)gcd(Fn,Fm)=F_{gcd(n,m)}接下来尝试去证明这个结论。首先斐波拉契序列有一个递推式: Fn+m=Fn−1∗Fm+Fn∗Fm+1Fn+m=Fn−1∗Fm+Fn∗Fm+...原创 2018-09-13 21:31:13 · 321 阅读 · 0 评论 -
51nod 1847 奇怪的数学题(Mobius反演+min_25筛+杜教筛+自然数幂和)
传送门.题解:设s(n)s(n)s(n)表示nn的最小质因子nn的最小质因子n \over n的最小质因子先小反演一下:∑ni=1∑nj=1sgcd(i,j)k∑i=1n∑j=1nsgcd(i,j)k\sum_{i=1}^n \sum_{j=1}^n sgcd(i,j)^k =∑nd=2s(d)k∗∑ni=1∑nj=1[gcd(i,j)=d]=∑d=2ns(d)k∗∑i=1n∑j...原创 2018-09-08 22:11:46 · 424 阅读 · 0 评论 -
min_25筛学习小记
min_25筛是洲阁筛的简化版,虽然我并不会洲阁筛。min_25筛可以筛一些特殊积性函数的前缀和,有些不是积性函数也可以筛,比如说最大真因子。同杜教筛一样,同时筛出了所有⌊ni⌋⌊ni⌋\lfloor {n \over i} \rfloor的前缀和。至于min_25能筛的积性函数有哪些要求,在博客后面会讨论所有时间复杂度证明见朱大佬2018国家预备队论文。筛的本质:1−n1...原创 2018-09-08 21:53:44 · 602 阅读 · 0 评论 -
自然数幂和(第二类斯特林数)
1.我们知道nknkn^k可以用第二类斯特林数拆成: ∑ki=1{ki}∗i!∗(ni)∑i=1k{ik}∗i!∗(in)\sum_{i=1}^k \{^k_i\}*i!*(^n_i)2.组合数的一个性质: ∑nj=1(ji)=(n+1i+1)∑j=1n(ij)=(i+1n+1)\sum_{j=1}^n (^j_i)=(^{n+1}_{i+1}) 证明: (i+1n+1)=(in)+(...原创 2018-09-08 20:35:14 · 624 阅读 · 0 评论 -
五边形数学习小记
学五边形数就是为了整数划分一类问题,目前并不知道有什么其它用途。设整数划分的生成函数为P(x)P(x)P(x)P(x)=∏∞i=1(∑∞j=1xij)P(x)=∏i=1∞(∑j=1∞xij)P(x)=\prod_{i=1}^{∞}(\sum_{j=1}^{∞}x^{ij}) =∏∞i=111−xi=∏i=1∞11−xi=\prod_{i=1}^{∞}{1 \over 1 -x^i}有...原创 2018-08-09 19:15:13 · 585 阅读 · 0 评论 -
【GDOI2016模拟3.16】幂
Description: 题解:设x=∏pqiix=∏piqix=\prod p_i^{q_i},d=gcd(qi)d=gcd(qi)d=gcd(q_i)若d&amp;gt;1d&amp;gt;1d&gt;1,我们先不考虑它。若d=1且x&amp;gt;n−−√d=1且x&amp;gt;nd=1且x&gt;\sqrt n,则xyxyx^y一定不会与其他有重的,贡献为B。若d=1且x&原创 2018-07-17 19:59:27 · 292 阅读 · 0 评论 -
【GDOI2016模拟3.16】装饰
Description:题解:很容易想到如果不计一开始一列的相对顺序。就可以重写每一列状态为0、1、2表示没有R,G,B的。接着枚举第一列是哪个,再枚举有几个空,接着枚举奇数的空的个数,接着列方程求出奇数中有几个是谁开头的,然后组合数一波流。Code:#include<cstdio>#include<algorithm>#define...原创 2018-07-17 16:50:35 · 271 阅读 · 0 评论 -
bsgs(大步小步算法)和exbsgs(扩展大步小步算法)学习小记
翻译:bsgs: baby steps,giant stepsbsgs:解决以下问题: 有三个整数a,b,p,其中p是质数。求最小的自然数x,使ax=b(mod&amp;nbsp;p)ax=b(mod&amp;nbsp;p)a^x=b(mod~p)。根据费马小定理,ap−1=1(mod&amp;nbsp;p)ap−1=1(mod&amp;nbsp;p)a^{p-1}=1(mod~p),所以原创 2018-07-04 21:43:34 · 588 阅读 · 0 评论 -
Prüfer编码与Cayley公式学习小记
传送门:顾森大爷的博客.Prüfer编码:一棵有编号的树如何用一个序列表示?Prüfer编码出奇迹。如何构序列:一共有n-2次操作: 找到当前叶子节点中编号最小的那个点x,输出与x相邻的点,删掉x。根据序列求树:由于没有出现在序列里的序号恰好是是叶子节点,所以每次找到每次找到序号最小的叶子节点,与序列的对应项形成一条边,把这个叶子删掉,继续考虑即可。*一棵树对应唯...原创 2018-07-03 18:48:12 · 1057 阅读 · 0 评论 -
【清华2019冬令营模拟12.15】排列
Description:n<=5000题解:考虑对一个值i它的区间的长度是多少。区间可以只考虑右半部分的,左边的倒过来做一遍就行了。若i是固定的,找到右边第一个固定的j>i那么区间肯定不能超过j所在的位置。可以直接枚举区间的右端点,这个右端点选的大于i,它左边的小于i,剩余的乱排,用排列数算即可。这一部分O(n2)O(n^2)O(n2)若i不是固定的,找到整个序列固...原创 2018-12-15 15:27:45 · 1454 阅读 · 4 评论 -
SnackDown 2019 - Online Elimination Round Adi and the Matrix(二维Polya计数)
原题链接.刚了这么久就是没有往burnside靠。题目大意:求有多少个不同的n*m的01矩阵。两个矩阵相同,定义为:通过每次交换两行或两列若干次之后完全相同。n*m&lt;=550,答案模1e9+7题解:burnsideburnsideburnside引理告诉我们:不同数=∑每种置换不动点个数置换数不同数={\sum_{每种置换}不动点个数\over 置换数}不同数=置换数∑每种置...原创 2018-12-10 22:33:03 · 368 阅读 · 0 评论 -
【北大2019冬令营模拟2019.1.1】多边形
Description:1&lt;=T&lt;=105,1&lt;=k,m&lt;=n&lt;=1061&lt;=T&lt;=10^5,1&lt;=k,m&lt;=n&lt;=10^61<=T<=105,1<=k,m<=n<=106题解:这题很好的考察了观察能力、组合数乱搞原创 2019-01-03 22:50:29 · 392 阅读 · 0 评论 -
【GDOI2019Day1模拟2019.4.28】爱乐之城
Description:题解:数论组合题,成功区分数论忘光选手。task1:∑i=1n∑j=1ni∗j∗[(i,j)=1]\sum_{i=1}^n \sum_{j=1}^n i*j*[(i,j)=1]∑i=1n∑j=1ni∗j∗[(i,j)=1]直接反演:∑d=1nμ(d)∗(∑d∣i,i<=n)2\sum_{d=1}^n\mu(d)*(\sum_{d|i,i&am...原创 2019-04-28 20:29:54 · 356 阅读 · 0 评论 -
2019年华南理工大学程序设计竞赛(春季赛)H Parco_Love_GCD
传送门.题解:首先要想到显而易见的结论:当右端点r固定时,gcd[l…r]不同的值只有log值域log值域log值域个。假设l一开始在r上,不断向左移,当gcd变化时,gcd至少/2,所以最多除以log次。那么不难得到一个暴力的做法:右端点向右扫维护gcd发生变化的左端点右端点右移时,变化点的gcd对a[r]取gcd,再加上r为变化点,unique一下即可。复杂度:O(nlog2...原创 2019-04-15 23:00:29 · 326 阅读 · 0 评论 -
单位根反演学习小记
裸题:bzoj3328在学习这个之前建议对FFT中的求和引理有一定的了解。单位根反演就是对:∑i∣kCni(mod p)\sum_{i|k}C_{n}^i(mod~p)∑i∣kCni(mod p)进行变换,p是质数,k∣p−1k|p-1k∣p−1,n比较大设mod pmod~pmod p下的原根为g,w=g(p−1)/kw=g^{(p-1)/...原创 2019-04-11 21:49:17 · 620 阅读 · 0 评论 -
多次剩余原根法
多次剩余:求xa=b(mod p)x^{a}=b(mod~p)xa=b(mod p),p是质数的所有解。找到p的原根g,设gB=bg^{B}=bgB=b,这个用bsgs求。xa=b(mod p)x^a=b(mod~p)xa=b(mod p)等价于ga∗x=gB(mod p)g^{a*x}=g^{B}(mod~p)ga∗x=gB(mod&nb...原创 2019-03-10 16:37:17 · 287 阅读 · 0 评论 -
二次剩余Cipolla法
翻着翻着居然翻到了两个退役选手zy和mw的博客,想到自己可能也会像他们一样省选失利……由于我比较水,目前只会模数是质数的情况,之后会了可能会补。很多具体的证明我也不会,限于感性认识,所以请看zy的博客:https://blog.csdn.net/a_crazy_czy/article/details/51959546二次剩余要做什么:给出n,pn,pn,p,p为一质数。要求xxx,...原创 2019-03-09 09:02:06 · 322 阅读 · 0 评论 -
原根相关
原根,定义为,对一给定模数p(p是奇质数),若有一g,满足g1−p−1g^{1-p-1}g1−p−1两两不同,则称g为p的原根。不会证明的结论QAQ:奇质数p一定存在原根,而且通过打表我们可以发现最小的原根都很小。task1:如何判断一个数x是否为p的一个原根?费马小定理:xp−1=1(p为质数)x^{p-1}=1(p为质数)xp−1=1(p为质数)假设x1−p−1x^{1-p-1}x1...原创 2019-02-28 22:51:30 · 908 阅读 · 0 评论 -
CodeForces1109D Sasha and Interesting Fact from Graph Theory(扩展Cayley公式)
传送门.题目翻译:给出n,m,a,b要求生成一棵有标号有边权的n个点的树,边权∈[1…m]是a->b的距离=m问方案数,对1e9+7取模。n,m<=10^6题解:很容易想到枚举a,b之间的边数设为x,然后开始统计:首先要选x-1个点出来,P(n−2,x−1)P(n-2,x-1)P(n−2,x−1)边的和为m,挡板问题(stars and bars method),C...原创 2019-02-17 22:39:14 · 499 阅读 · 0 评论 -
浅谈我对(扩展)中国剩余定理Crt的理解
我感觉中国剩余定理我并不能顺推出来,这是一个很巧妙的构造,这个构造思想值得学习,但是扩展的可以顺推。问题:有一xxx,满足:x≡c1(mod&amp;nbsp;m1)x≡c1(mod~m1)x≡c1(mod&amp;nbsp;m1)x≡c2(mod&amp;nbsp;m2)x≡c2(mod~m2)x≡c2(mod&amp;nbsp;m2)…x≡ck(mod&amp;nbsp;mk)x≡ck(mod~m原创 2019-01-03 12:23:39 · 730 阅读 · 0 评论 -
浅谈我对(扩展)Lucas定理的理解
可能是太太太久没有用这个定理了,考场上都不记得有这个东西,然后自己推了个组合数取模(模数是一个质数p,且p比较小),考后发现就是Lucas定理,可以说是顺推出了Lucas定理,而不是有了结论再去证明。目标:求Cnm(mod&amp;amp;nbsp;p)C_{n}^m(mod~p)Cnm(mod&amp;amp;nbsp;p),p是质数,且比较小。step1:考虑如何求n!(mod&amp;amp;nbsp;p)n!(mod~p)n...原创 2019-01-03 10:29:59 · 516 阅读 · 0 评论 -
2019.1.17模拟
T1:求∑i=1nti∗Cn−ik−1\sum_{i=1}^nt^i*C_{n-i}^{k-1}∑i=1nti∗Cn−ik−11&lt;=k&lt;=1e7,1&lt;=n&lt;=1e91&lt;=k&lt;=1e7,1&lt;=n&lt;=1e91<=k<=1e7,1<=n<=1e9也不知道怎么搞...原创 2019-01-17 18:46:18 · 285 阅读 · 0 评论 -
Codeforces Round #485 (Div. 1) D. Perfect Encoding
原题链接.题目大意:b是一堆正整数。 若∏bi>=n∏bi>=n\prod b_i>=n, 求∑bi∑bi\sum b_i的最小值。n<=101.5∗106n<=101.5∗106n∑bi∑bi\sum b_i确定的话,使∏bi∏bi\prod b_i最大一定是尽可能拆2、3,且2的个数不超过2。 证明自行感性认识。所以这题变成了求大数的对数,底数是3...原创 2018-06-26 21:05:30 · 342 阅读 · 0 评论 -
Codeforces 960 G Bandit Blues
传送门.题目大意:求有多少个n的排列: 满足: 1.有a个数比它左边的都大 2.有b个数比它右边的都大1 <= n <= 10^5题解:设fi,jfi,jf_{i,j}表示i的排列,有j个数比它左边的都大的方案数。考虑加一个最小的数进来,转移为fi,j=fi−1,j−1+(i−1)∗fi−1,jfi,j=fi−1,j−1+(i−1)∗fi−1,jf_{i,...原创 2018-06-30 16:25:29 · 272 阅读 · 0 评论 -
51nod 1318 最大公约数与最小公倍数方程组
原题链接.题解:首先分解质因数,gcd就相当于指数的min,lcm就相当于指数的max。于是问题变成了这样: 给出一坨类似于以下的限制: min(a,b) = c max(a,b) = c 问是否有解?以min为例.min(a,b) = c 即(a >= c) and (b >= c) and (a = c or b = c)注意到指数是很小的,c不超过三十。于是可以把x拆成31(0->3原创 2017-10-23 20:05:33 · 659 阅读 · 1 评论 -
自然数幂和(拉格朗日插值法)
今天A组的第一题是这个 Σ(☉▽☉”a题目:∑ni=1ik\sum_{i=1}^n i^k 对一个大于i的质数取模。 1解法:不懂拉格朗日插值法的戳这儿。原创 2017-10-06 16:30:34 · 1554 阅读 · 0 评论 -
51nod 1323 完美平方
题目链接.异或方程组高斯消元例题。每个元素选与不选设为未知数。同一行同一列搞个方程。至于是完全平方数就分解质因数,对每个质因子建一个方程。答案是2的自由元个数次幂。自由元个数=元的个数-有用方程的条数。其实我到现在才知道高斯消元非三角矩阵的打法,感觉以前学了假的消元。可以用bitset优化,很简单,这里不讲。算法竞赛入门经典这本书里有一道类似的题,打法也是从那里...原创 2017-10-06 21:59:40 · 444 阅读 · 0 评论 -
自然数幂和(差分表法)
问题:求∑ni=1ik\sum_{i = 1}^n i^k (1<=k<=2000) 模数为大于n的质数。题解:这个东西可以证明k次的自然数幂和一定是个k+1次的多项式,对拉格朗日插值法有点帮助。二次项展开: (n+1)k−nk(n+1)^k-n^k =∑k−1i=0Cik∗ni=\sum_{i=0}^{k-1}C_k^i*n^i∑ni=1((i+1)k−ik)=(n+1)k−1\sum_{原创 2017-10-06 19:14:01 · 893 阅读 · 0 评论 -
51nod 1419 最小公倍数挑战
原题链接题目大意:从1到n中选三个数字(可以相同)。使得他们的最小公倍数最大。 要求O(1)。题解:n<=3时打表。首先要想起胎教时学的相邻两个正整数互质这个东西,证明用欧几里得显然。假设我们选n、(n-1)、(n-2)。 n和(n-1)是互质的,(n-1)和(n-2)也是互质的。 gcd(n,n-2) = gcd(n, 2).所以当n是奇数,显然选n、(n-1)、(n-2)最优。所以当n是偶原创 2017-09-22 19:37:05 · 312 阅读 · 0 评论 -
【NOIP2017提高A组模拟8.22】密码
Description: 1<=n<=1e1000, 1 <= p <= 1e9, 1 <= k <= 1e9题解:题目要求: ∑ni=1∑ij=1[Cji含有的p的幂次>=k]\sum_{i = 1} ^n \sum_{j = 1} ^ i [C_{i}^j 含有的p的幂次 >= k] 我们知道有库默尔定理,这是这道题的基础。 库默尔定理: [Cji+j含有的p的幂次=i+j在p进制下的原创 2017-08-22 22:40:45 · 530 阅读 · 0 评论 -
【GDOI2018模拟8.12】求和
Description: 1<=n<=10^10,k = 1、40题解:一看就是反演题,立马进行简单变形: 原式=∑kx=1∑nd=1fx(d)∗∑ni=1∑nj=1[gcd(i,j)=d]\sum_{x = 1}^k \sum_{d = 1}^n f_x(d) *\sum_{i = 1}^n \sum_{j = 1}^n [gcd(i, j) = d] =∑kx=1∑nd=1fx(d)∗∑⌊原创 2017-08-15 15:49:25 · 408 阅读 · 0 评论 -
库默尔定理学习小记
A组又出现了逆天的数竞定理,随便口胡一下。定理:有两个正整数n,m,Cnn+mC_{n +m}^n含p的幂次等于m+n在p进制下的进位数。简略证明:Cnn+mC_{n +m}^n含p的幂次 =∑∞i=1⌊n+mpi⌋−∑∞i=1⌊npi⌋−∑∞i=1⌊mpi⌋= \sum_{i = 1}^{∞}{\lfloor {n +m\over p^i}\rfloor} - \sum_{i = 1}^{∞}原创 2017-08-22 22:25:40 · 3400 阅读 · 1 评论 -
卡特兰数学习小记
卡特兰数:卡特兰数的第n项记作h(n)。 其中h(0) = 1, h(1) = 1, h(2) = 2. 我理解的是:h(n)表示包含n对括号的合法括号序列的数目。一些比较鬼的性质:h(n)=Cn2n−Cn+12n=Cn2nn+1h(n) = C_{2n}^{n} - C_{2n}^{n + 1} = {C_{2n}^{n} \over {n +1}} h(n)=∑n−1k=0h(k)∗h(n原创 2017-08-20 20:14:01 · 454 阅读 · 0 评论 -
51nod 1835 完全图
原题链接. 比赛时我怎么都不会做这一题。旁边人表过了。显然的状态是fi,jf_{i,j}表示用了序号前i个,有j块的方案数。显然可以枚举第i个放的块的大小来转移。fi,j=∑i−(j−1)k=1fi−k,k−1∗fk−1,1∗Ck−1i−1f_{i,j} =\sum_{k=1}^{i-(j-1)}f_{i-k,k-1}*f_{k-1,1}*C_{i-1}^{k-1}这条方程神奇之处在于自我调用fk原创 2017-11-29 12:20:14 · 565 阅读 · 2 评论 -
【清华集训2017模拟12.10】大佬的难题
题目大意: 1<=n<=2e6,时限:2.5s题解:容斥原理瞎搞。设A,B,C分别为满足三个条件的集合。根据容斥原理,有: A∪B∪C=A+B+C−A∩B−A∩C−B∩C+A∩B∩CA∪B∪C=A+B+C-A∩B-A∩C-B∩C+A∩B∩C而A∪B∪C同时会等同于总数n∗(n−1)n*(n-1)-都大于的个数(即都小于的个数A∩B∩CA∩B∩C)所以: n∗(n−1)−A∩B∩C=A+B+C−原创 2017-12-09 15:57:53 · 522 阅读 · 0 评论 -
默慈金数学习小记 && 51nod 1556 计算
参考博客:ACdreamers.事实上默慈金数很偏门,据说早就渗入ACM竞赛中了(庆幸我才初中)。默慈金数定义:在一个圆上有n个不同的点,画出彼此互不相交弦的方案数(可以不画)即是第n个默慈金数。递推公式: M(1)=1,M(2)=2M(1)=1,M(2)=2 M(n+1)=M(n)+∑n−1i=0M(i)∗M(n−1−i)M(n+1)=M(n)+\sum_{i=0}^{n-1}M(i)*M(n原创 2017-11-20 20:20:12 · 551 阅读 · 0 评论 -
Miller-Rabin和Pollard-Rho算法学习小记
前言:很早前就看到这两个算法了,但是之前没有看懂。好吧,模拟赛遇到了,不学不行啊。Miller-Rabin测试:我们知道常用的最快的判断质数的办法约是O(n−−√)(n)(\sqrt n)的。Miller-Rabin测试是一种随机的算法,可以通过...原创 2018-05-28 21:37:23 · 625 阅读 · 0 评论 -
【TJOI2015】组合数学
Description:题解:这个东西一看就是二维偏序吗?首先考虑把一个权值为v的点拆成v的相同的点,这v个点相互不可比的。这样答案变成了最小链覆盖。dilworth定理:最小链覆盖=最大反链。一个点拆成了v的点,因为这v个点互不可比,那这v个点肯定要同时选,所以其实相当求点权和最大的反链,这个写个sb动态规划就行了。Code:#include<c...原创 2018-05-23 21:15:43 · 395 阅读 · 0 评论