ACM中的数学问题合集
文章平均质量分 83
数学在ACM竞赛中通常会占很大的比重,所以整理一下这方面的知识,即便现在还没有做到完备的程度,也可以为想要学习的人指明学习的方向。(第一篇文章是目录)
JK Chen
ACM退役选手,战绩4金6银
展开
-
ACM中的数学问题合集
数学在ACM竞赛中通常会占很大的比重,例如这次暑假的多校比赛中,几乎所有题目都和数学有着很大的联系所以统计一下一些常用的知识点数论欧拉定理威尔逊定理中国剩余定理费马小定理...原创 2019-08-20 22:30:35 · 11842 阅读 · 3 评论 -
一次同余方程(ax%p=b)
最小非负解求 ax≡b(mod  p)ax\equiv b(mod\; p)ax≡b(modp)的最小非负解。公式化为:ax+py=bax+py=bax+py=b此时用扩展欧几里得算法求解即可。/* * Author : Jk_Chen * Date : 2019-08-21-10.26.44 */#include<bits/stdc++....原创 2019-08-21 11:01:49 · 966 阅读 · 0 评论 -
线性递推——BM模板
#include <cstdio>#include <cstring>#include <cmath>#include <algorithm>#include <vector>#include <string>#include <set>#include <cassert>原创 2018-08-14 16:32:23 · 1077 阅读 · 0 评论 -
多项式插值法
Lagrange多项式插值给出样例插值点,求出XXX的函数值F(X)F(X)F(X)。其中X∈RX\in RX∈R时间复杂度为O(k2)O(k^2)O(k2),kkk为插值点个数代码:#include <bits/stdc++.h>#define rep(i,a,b) for(ll i=a;i<=b;i++)using namespace std;typedef l...原创 2019-08-20 22:28:09 · 2258 阅读 · 0 评论 -
阶、原根、指标(离散对数)
阶定义: 最小的ttt使得:at≡1(mod  p)a^t\equiv1(mod \;p)at≡1(modp),则称ttt为aaa在模ppp下的阶((a,p)=1(a,p)=1(a,p)=1),记作:δp(a)=t\delta_p(a)=tδp(a)=t理解: a%pa\%pa%p下的阶ttt相当于a%pa\%pa%p的循环节,每乘上ata^tat,值不变。拓展...原创 2019-08-14 22:30:11 · 1413 阅读 · 0 评论 -
BSGS,扩展BSGS(求离散对数 b^x%p=n)
应用大步小步法(Baby−Step−Giant−StepBaby-Step-Giant-StepBaby−Step−Giant−Step,简称BSGSBSGSBSGS),可以在O(logP)O(logP)O(logP)的时间内求出basex≡n(mod  P)base^x\equiv n(mod\;P)basex≡n(modP)的解xxx。过程其实就是一个暴力而已...原创 2019-08-20 20:37:26 · 606 阅读 · 0 评论 -
二项式定理
二项式定理公式:(x+y)n=∑i=0nCnixiyn−i(x+y)^n=\sum_{i=0}^nC_n^ix^iy^{n-i}(x+y)n=∑i=0nCnixiyn−i这个知识点其实很简单的,你自己展开得出来的就是这个东西,下面两个推广也很简单当你把(1,1)带入时,会得到:∑i=0nCni=2n\sum_{i=0}^nC_n^i=2^ni=0∑nCni=2n当你把(1,-1)...原创 2018-09-18 16:28:21 · 4939 阅读 · 0 评论 -
二项式反演
反演:设求解函数为G,当G直接求比较复杂时,可以用与G相关的函数F来转化,且一般F都比较好求,大多时候为一个未知量已知的且可以O(1)求出的公式比如,G(d)=∑i=1n∑j=1m[gcd(i,j)==d]G(d)=\sum_{i=1}^n\sum_{j=1}^m[gcd(i,j)==d]G(d)=∑i=1n∑j=1m[gcd(i,j)==d],就可以用莫比乌斯反演快速推出:F(d)=∑d...原创 2018-09-18 13:57:06 · 1827 阅读 · 0 评论 -
杜教筛(下):狄利克雷卷积
定义: 定义f,gf,gf,g两个函数的狄利克雷卷积运算(*)为:(f∗g)(n)=∑d|nf(d)∗g(nd)(f∗g)(n)=∑d|nf(d)∗g(nd)(f*g)(n)=\sum_{d|n}f(d)*g(\frac{n}{d})性质:狄利克雷卷积满足:交换律:f∗g=g∗ff∗g=g∗ff*g=g*f结合律:(f∗g)∗h=f∗(g∗h)(f∗g)∗h=f∗(g∗h)...原创 2018-09-12 18:42:20 · 1281 阅读 · 1 评论 -
杜教筛(上):整除分块,积性函数,欧拉与莫比乌斯
参考资料整除分块:当我们求∑ni=1f([ni])∑i=1nf([ni])\sum_{i=1}^nf([\frac{n}{i}])的时候,如果1到n求一遍感觉太傻了,因为会有很多重复的计算,例如:n=10000时,i在[101,111]时,都有[ni]=9[ni]=9[\frac{n}{i}]=9,所以我们只需要对所有数分成如上的一个一个区间就可以节省很多不必要的时间设:[ni]=d[...原创 2018-09-12 18:06:19 · 1471 阅读 · 0 评论 -
康拓展开(排序次序号)
全排序知道吧,1 2 3 4 5 6是第一种,1 2 3 4 6 5是第二种…推导过程以9的全排列举例:842697513是1-9全排列的第几个?首先看第一位为8,那么第一位为1-7的全排列都比它小,共有7*8!个。 在第一位为8的情况下,其次看第二位为4,那么第二位为1-3的全排列都比它小,共有1*3*7!个。 在第一位为8,第二位为4的情况下,那么第三位为1的全排列都比它小...原创 2018-08-03 11:59:15 · 673 阅读 · 0 评论 -
母函数运用
应用:有nnn种物品,第iii件物品的价值为vivivi,你拿它的数量下限为n1in1in1_i,上限为n2in2in2_i那么就可以生产以下母函数: ∏i=1n(xvi∗n1i+xvi∗(n1i+1)+...+xvi∗(n2i−1)+xvi∗n2i)∏i=1n(xvi∗n1i+xvi∗(n1i+1)+...+xvi∗(n2i−1)+xvi∗n2i)\prod_{i=1}^n\big( ...原创 2018-08-17 20:52:40 · 716 阅读 · 0 评论 -
Burnside引理 & Polya计数
-&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;置换群概念Burnside引理置换群作用下等价类个数,等于每个置换的不动点个数的平均数。原创 2018-09-05 10:45:39 · 1038 阅读 · 0 评论 -
群及置换群的概念
BOLG群的定义设G为一个元素的集合,称G内的元素为元,*为针对G这个集合的元素的运算,当(G,∗)(G,∗)(G,*)满足以下要求的时候,我们称(G,∗)(G,∗)(G,*)为群封闭性:G内的任何两个元的*运算的结果仍在G内交换律:a∗(b∗c)=(a∗b)∗ca∗(b∗c)=(a∗b)∗ca*(b*c)=(a*b)*c单位元:任何a∗e=aa∗e=aa*e=a逆元:a∗...原创 2018-09-04 16:21:47 · 12480 阅读 · 2 评论 -
线性基 (异或和求最大值)例题:无效位置
对于给出多个数,求异或的最大值时,通常需要用线性基来处理什么是线性基呢?对于原数组,我们试图用最少个数作为基础,用这些数之间的异或 就可以 表示所以子集合的异或和,而这些数即基础,称之为线性基,类似于用10个数来表示1~1023的所有数的道理所有基线性相关插入我们用数组a来表示线性基,a[i]表示基当中最高位为第i位的基基的插入过程为假如当前数v的最高位i所在...原创 2018-05-04 11:46:01 · 1533 阅读 · 0 评论 -
集合问题 : 容斥原理
容斥原理用于解决有交集的集合的组合问题 \\ 其实这种思想很多人不用学便以及在运用了 , 这篇博客知识起到一个总结的作用举个例子 :有三个集合 : 棕,红,黄,绿 , 其中棕包含所有其他三个集合 , 求除去其他三个集合后的棕集合 设 : 棕,红,黄,绿集合为A,A1,A2,A3,A,A1,A2,A3,A,A_1,A_2,A_3,那么答案便是 : 颜色为红黄...原创 2018-08-28 15:17:18 · 6954 阅读 · 0 评论 -
简单博弈之SG函数
SG函数 , 需要尼姆博奕(Nimm Game) 作为基础 \\ SG函数其实非常的简单 , 我初学的时候也被网上的花哨的bolg给吓到了单个游戏的SG知识点1 :学完之后的SG -&amp;amp;amp;amp;gt; 判断一个状态的SG值为非0值 , 便为一个必胜态 ; 只要SG=0才是必败态知识点2 :对集合函数mex -&amp;amp;amp;amp;gt; 返回未在集合中的最小非负整数 ...原创 2018-08-28 11:00:00 · 1455 阅读 · 0 评论 -
二次剩余,二次同余方程
定义对于方程x2≡n(modp),nx2≡n(modp),nx^2\equiv n (mod \;p)\;,\;n为p的二次剩余 , x为该二次同余方程的解 就如字面意思一样 , n就是一个二次项%p后的剩余应用求n−−√%p,n%p,\sqrt{n}\%p\;,若n为p的二次剩余 , 那么很明显n−−√%p=x%pn%p=x%p\sqrt{n}\%p=x\%p 简...原创 2018-08-27 15:09:12 · 2270 阅读 · 0 评论 -
组合博弈基础 -- 三大基本博弈+斐波那契博弈
#define P(positive) 必胜态#define N(negative) 必败态 巴什博奕(Bash Game) 有一堆石子n个 , 每次可以取1~m个石子 , 没有石子可取的那方输 , 问第一个取的人的输赢给对面一个m+1的堆 , 无论对面取多少 , 你都可以取一个数使这堆石子取完所以说你要设法取一个数使堆剩下k(m+1)k(m+1)k(m+1)给对面...原创 2018-08-26 17:42:45 · 3597 阅读 · 2 评论 -
Lucas定理(求组合数取模) 扩展Lucas定理(解决模数非质情况)
在比赛时 , 如果遇到CmnCnmC_n^m的n比较大 , 我们不能通过预处理阶乘和逆元来计算 , 而题目又要求对答案取一个质数模的时候 , 我们可以用Lucas定理来简化计算Lucas 定理:定义 : n,m是非负整数,p是素数时 , Lucas(n,m)=Cmn%pLucas(n,m)=Cnm%pLucas(n,m)=C_n^m\;\% p公式 : Lucas(n...原创 2018-08-25 11:22:16 · 1997 阅读 · 0 评论 -
线性代数 高斯消元
其实我线性代数考试每次都99,100的,可惜好久不学都快忘了。 没想到acm居然要用到,早知道不扔笔记本了QAQ#define A(n,m) n行m列的行列式A #define A[n][m] 行列式A的第n行第m列的元素 #define |A| 行列式A的值行列式A=⎡⎣⎢353212242⎤⎦⎥[322514322]\begin{bmatrix} 3&2&2\\5&1...原创 2018-08-24 19:28:02 · 1323 阅读 · 0 评论 -
莫比乌斯反演快速入门
莫比乌斯反演并没有你看到的其他博客里写的那么复杂,那么多公式,很简单的经典例题 :∑i=1N∑j=1Mgcd(i,j)=n,即多少gcd=n∑i=1N∑j=1Mgcd(i,j)=n,即多少gcd=n\sum_{i=1}^{N}\sum_{j=1}^{M}gcd(i,j)=n,即多少gcd=n 可以看一下这题的其他做法假设你已经知道了莫比乌斯函数μ(i)μ(i)\m...原创 2018-08-24 14:01:54 · 1341 阅读 · 0 评论 -
ACM中的组合数学基础
组合数学是数学的一个重要分支,在ACM竞赛中占有极大的比重组合数学主要研究:按某种约束条件组成的各种离散问题。问题的解解的存在性计数问题与分类能行性问题(构造算法)最优化问题...原创 2018-08-23 19:20:18 · 2533 阅读 · 2 评论 -
矩阵快速幂
矩阵应用线性代数的内容,应该是学计算机的必修课,就不多讲内容了,主要是在编程时的用法。单项递推有数列A[n]=4*A[n-1]+2,我们可以写出两个矩阵项矩阵:{A[1],1}乘积矩阵:{4,0} {2,1}把项矩阵乘一次乘积矩阵,得到了{4*A[1]+2,1}也就是{A[2],1},所以A[n]只要项矩阵乘n-1次就可以得到。多项递推举个例子,斐波那契数...原创 2018-03-22 08:44:29 · 1059 阅读 · 0 评论 -
反素数(其实重点不是反素数。。。)
初学反素数的时候总会感到很迷茫,因为网上你找来找去只有ACdreamer一个版本的博客。我查阅了很多资料,也问过几位学长,才知道,重点不是反素数。 \\ 怎么说呢,你不能把反素数当成卡特兰数这种以数为中心的东西,其实反素数在我看来更像是一种数论。关键不是去求这个反素数,而是靠反素数的定义带来的思想做题。反素数#define Y(i) i的因数的个数我们把n称为反...原创 2018-08-23 22:30:37 · 1148 阅读 · 0 评论 -
鸽巢原理 Ramsey数
这个原理听起来会非常简单,但是实际运用却需要极大的构思能量原理内容:把n+1个物体放入n个盒子中,则至少有一个盒子内有两个或两个以上物体。 什么当作盒子什么当作物体是关键例1: 在边长为2的正方形中5个点,至少存在两个点,使得它们之间的距离小于等于2–√2\sqrt{2} , 显然成立例2(经典):任意一群人中至少存在两个人,他们在这群人中认识的人数恰好...原创 2018-08-23 11:43:51 · 4319 阅读 · 1 评论 -
卡特兰数
应用 1.n个数进栈,有h(n)种出栈方式; 2.凸n边形,用多条不相交的对角线分成三角形,有h(n-2)种可能性; 3.n个节点,有h(n)种不同的二叉搜索树 4.给n对括号排序,有h(n)种不同的正确的排序方式 5.买票找零n个50元,m个100元(一开始柜台没零钱) 6.n*n棋盘从左下角走到右上角而不穿过主对角线的走法 7.矩阵连乘的括号化 8.在圆上选择2n个点,将这些...原创 2018-04-17 20:59:09 · 1020 阅读 · 0 评论 -
素数筛(线性筛法)
别问我为什么现在才学。。。素数也算是程序设计比赛中经常遇到的老对手了,对付它最基本的方法(这里说的是基本,不是蠢,怎么说我以前也一直在用)是通过素数的定义判断,只能被1和本身整除的数是素数。这种方法适合判断单个数是否为素数,当要求一个范围时,这种方法就基本上是T了。这时我们就可以使用素数筛来做。筛法的思想是去除要求范围内所有的合数,剩下的就是素数了,而任何合数都可以表示为素数的乘积,因...原创 2018-02-06 16:30:41 · 3471 阅读 · 0 评论 -
扩展欧几里得算法(求逆元)
前论1. 欧几里得算法 欧几里德算法又称辗转相除法,用于计算两个整数a,b的最大公约数。gcd函数就是用来求(a,b)的最大公约数的。 gcd函数的基本性质: gcd(a,b)=gcd(b,a)=gcd(-a,b)=gcd(|a|,|b|)公式表述 gcd(a,b)=gcd(b,a mod b) 证明: a可以表示成a = kb + r,则r = a mod b 假设d...原创 2018-02-09 11:56:06 · 7533 阅读 · 1 评论 -
逆元详解
老早便想学这个东西,无奈学这个需要很多知识做铺垫。今日终于了结了这道坎建议先学的知识:费马小定理扩展欧几里得算法逆元介绍及应用(inv):求解公式(a/b)%m 时,因b可能会过大,会出现爆精度的情况,所以需变除法为乘法: 设c是b的逆元,则有b*c≡1(mod m); 则(a/b)%m = (a/b)*1%m = (a/b)*b*c%m = a*c(mod m); 即...原创 2018-02-10 16:04:07 · 4221 阅读 · 0 评论 -
Weird Requirements (多个数的GCD和LCM的处理)
原题:Gym - 101808G题意:n个数的数组,给出gcd和lcm,要求改变一些数使得gcd=x,lcm=y解析:任何数都由一些质数的几次幂的乘积组成 及 ai=(p1^ci1)(p2^ci2)(p3^ci3)…..(pj^cij) (p 都为质数)求gcd其实就是求次数的最小值 gcd(a1,a2,a3,…) =(p1^min1)(p2^min2)…(pj^m...原创 2018-07-19 10:47:29 · 2426 阅读 · 0 评论 -
stein算法(求gcd)
用欧几里得算法求gcd确实很方便,但是对于求大整数的gcd的情况下却很慢(因为要取模)stein算法的时间空间复杂度都和欧几里得相同,而且只需要位移和加减求可以实现原理:gcd(ka,kb)=k*gcd(a,b)#define D long longD stein(D a, D b){ if(a==0) return b; if(b==0) return ...原创 2018-08-05 13:20:30 · 2751 阅读 · 2 评论 -
Miller-Rabin素数检测算法
费马小定理二次探测定理:p为一个素数,则x2≡1(modp)x2≡1(modp)x^2\equiv 1(mod\;p)在(0,p)范围内的解为x=1或x=p-1Miller-Rabin素数检测算法:原创 2018-08-22 20:30:30 · 1487 阅读 · 0 评论 -
ACM数论基本定理
数论四大定理这里就不重复说明了,讲一下一些重要的其他定理#define Y(n) n的因子个数 #define F(n) 斐波那契数列第n项 #define p 某个素数 #define ϕ(n) n的欧拉函数值gcd(F(n),F(m))=F(gcd(n,m))gcd(F(n),F(m))=F(gcd(n,m))gcd(F(n),F(m))=F(gcd(n,m))g...原创 2018-08-23 15:21:47 · 1504 阅读 · 2 评论 -
大整数分解——Pollard Rho算法(floyd判圈)
环境 : 给定一个数n,让你把它分解成多个素数的乘积你离此算法大成就差一个Miller-Rabin素数检测算法了对于一个数n,只需要如下步骤即可分成若干个素数 找到一个数p , 使p|n 那么n就可以变成p和n/p 如果p或者n/p不是质数,当成n重新第一步 判断是否为质数用Miller-Rabin素数检测算法最关键的是如何找到这个数p...原创 2018-08-23 10:19:05 · 3333 阅读 · 2 评论 -
欧拉函数 欧拉定理 欧拉降幂
定义:ϕ(i)ϕ(i)\phi(i)表示第i个欧拉函数的值,代表了从1到i与i互质的数的个数,例如ϕ(8)=4ϕ(8)=4\phi(8)=4,因为1,3,5,7均和8互质通式:ϕ(x)=x∗∏ni=111−pi(pi为x的质因子)ϕ(x)=x∗∏i=1n11−pi(pi为x的质因子)\phi (x)=x*\prod_{i=1}^n\dfrac{1}{1-p_i} (p_i为x的质因子)...原创 2018-08-13 20:12:56 · 2822 阅读 · 4 评论 -
费马小定理
从刚开始学就经常会会听到这个东西,但是由于种种原因,至今才有所涉猎。首先,讲一下同余。同余所描述的是两个整数的一种等价关系,如果两个整数a和b除以同一个整数p所得的余数相等,我们就说这两个整数模p同余。记作a ≡ b(mod p) 。 例如:3 ≡ 5(mod2),同余为1性质: 同余的重要性体现在它保持了普通等式的许多性质。我们知道普通等式有以下 恒有a = a 如果a = ...原创 2018-02-06 15:28:48 · 2180 阅读 · 1 评论 -
中国剩余定理(最详细说明 非互质情况)
说明一下这个解法140满足%3=2,而且是5和7的倍数,也就是说加上140对其他数的取余结果不会有影响同理,其他的数加上这个数就可以在不影响自生取余的情况下附带满足%3=2的性质所以把所有这些数加起来就是满足答案的一个解,而在这个时候对于这个得到的数尽可能的消小(减去所有数的公倍数不会改变性质),就是答案代码:#define D long long...原创 2018-08-08 19:17:06 · 8625 阅读 · 2 评论 -
威尔逊定理
这个东西好像在比赛中的用处不大,而且也不像欧拉和费马一样有一些额外的拓展威尔逊定理:当n为质数时有: (n−1)!≡−1(modn)(n−1)!≡−1(modn)(n-1)!\equiv -1(mod\;n)或者是: ((n−1)!+1)%n=0((n−1)!+1)%n=0((n-1)!+1)\%n=0应用:在网上找到了一道很有意思的数学脑洞题链接求∑k...原创 2018-08-22 10:10:12 · 1756 阅读 · 4 评论 -
min_25筛(积性函数求和)
A:如来神掌!B:min_25筛~A:且慢,我投降。应用解决一些较为普遍类型的积性函数的求和问题,∑i=1nf(i)\sum_{i=1}^{n}f(i)∑i=1nf(i),可以用min_25min\_25min_25筛的前提是:可以在过程中快速求解f(pk)f(p^k)f(pk)。时间复杂度为O(n34logn)O(\frac{n^{\frac{3}{4}}}{logn})O(log...原创 2019-09-27 17:45:21 · 637 阅读 · 0 评论