模板\算法\知识点总结
文章平均质量分 59
Cyhlnj
这个作者很懒,什么都没留下…
展开
-
BZOJ5317:[JSOI2018]战争(闵可夫斯基和)
令 a∈A,b∈Ba\in A,b\in Ba∈A,b∈B 则移动向量 ω\omegaω 使得存在 b+ω=ab+\omega=ab+ω=a那么 ω\omegaω 需要满足 ω=a−b\omega=a−bω=a−b黑科技:闵可夫斯基和直接构造闵可夫斯基和 C=a+(−b)C={a+(−b)}C=a+(−b)余下问题便是判断输入的移动向量是否在 CCC 内可以强行使凸包的最下面为 (0,0...原创 2019-01-19 13:41:03 · 450 阅读 · 0 评论 -
多项式多点求值和插值
orz fjzzqorz~fjzzqorz fjzzq多项式多点求值给定一个多项式 F(x)F(x)F(x)求出对于每个点 xix_ixi 的 F(xi)F(x_i)F(xi)考虑分治设L(x)=∏i=0n2(x−xi),R(x)=∏i=n2+1n(x−xi)L(x)=\prod_{i=0}^{\frac{n}{2}}(x-x_i),R(x)=\prod_{i=...原创 2018-11-29 13:52:21 · 444 阅读 · 0 评论 -
Luogu2483 [SDOI2010]魔法猪学院(可并堆)
俞鼎力大牛的课件对于原图以 ttt 为根建出任意一棵最短路径树 TTT,即反着从 ttt 跑出到所有点的最短路 disdisdis它有一些性质:性质1:对于一条 sss 到 ttt 的路径的边集 PPP,去掉 PPP 中和 TTT 的交集,记为 P′P'P′。那么 P′P'P′ 对于中任意相邻(从 sss 到 ttt 的顺序)的两条边 e,fe,fe,...原创 2018-11-02 14:15:22 · 180 阅读 · 0 评论 -
导数积分表
导数1.2.3.4.5.6.7.8.9.10.11.12.f(x)=C,f′(x)=0f(x)=xn,f′(x)=nxn−1f(x)=ax,f′(x)=ln a×axf(x)=ex,f′(x)=exf(x)=logax,f′(x)=1x×ln a(f(x)=ln x,f′(x)=1x)f(x)=sin x,f′(x)=cos xf(...原创 2018-08-07 14:14:15 · 987 阅读 · 1 评论 -
Bzoj2395: [Balkan 2011]Timeismoney(最小乘积生成树)
问题描述每条边两个权值 x,yx,yx,y,求一棵 (∑x)×(∑y)(∑x)×(∑y)(\sum x) \times (\sum y) 最小的生成树Sol把每一棵生成树的权值 ∑x∑x\sum x 和 ∑y∑y\sum y 看成平面上的一个点 (X,Y)(X,Y)(X,Y)那么就是要求 X×YX×YX \times Y 最小设 k=X×Yk=X×Yk=X \times Y,则...原创 2018-08-06 20:42:33 · 230 阅读 · 0 评论 -
Min_25筛
有(没)什么用?求解积性函数 FFF 的前缀和∑i=1nF(i)∑i=1nF(i)\sum_{i=1}^{n}F(i) 做法首先假设 F(i)=ikF(i)=ikF(i)=i^k 设 PiPiP_i 为从小到大的第 jjj 个质数 设 g(x,j)g(x,j)g(x,j) g(x,j)=∑xi=1[ig(x,j)=∑i=1x[ig(x,j)=\sum_{i=1}^...原创 2018-08-01 19:51:15 · 256 阅读 · 0 评论 -
拉格朗日插值公式
若P(x)P(x)P(x)是关于xxx的nnn次多项式,那么只要知道0 n0 n0~n的点值就可以推出所有的点值了P(x)=∑i=0n(−1)n−iP(i)x(x−1)...(x−n)(n−i)!i!(x−i)P(x)=∑i=0n(−1)n−iP(i)x(x−1)...(x−n)(n−i)!i!(x−i)P(x)=\sum_{i=0}^{n}(-1)^{n-i}P(i)...原创 2018-07-29 22:23:09 · 2281 阅读 · 0 评论 -
可持久化trie(BZOJ5338: [TJOI2018]xor)
题面BZOJSol显然是要维护一个区域的 trietrietrie 树,然后贪心 区间 trietrietrie 树??? 可持久化 trietrietrie 树??? 直接参考主席树表示出区间的方法建立 trietrietrie 树,然后做差就好了 巨简单# include <bits/stdc++.h># define IL inline# defi...原创 2018-06-17 10:02:00 · 216 阅读 · 0 评论 -
最小树形图--朱刘算法([JSOI2008]小店购物)
题面luoguSol首先设一个 000 号点,向所有点连边,表示初始价值 显然这个图的一个 000 为根的最小有向生成树的边权和就是每个买一次的最小价值 再买就一定能优惠(包含 000 的边)有向图最小生成树???朱刘算法其实正确性不会理论。。 可以说是一个不断调整的过程,从而得到最优解时间复杂度 O(VE)O(VE)O(VE)流程: 1.去掉...原创 2018-06-17 09:50:59 · 265 阅读 · 0 评论 -
回文树模板
存代码 学习的博客 然后国家集训队2017年的论文在后面插入的IL void Extend(RG int pos, RG int c){ RG int p = last; while(s[pos - len[p] - 1] != s[pos]) p = fa[p]; if(!son[c][p]){ RG int np = ++tot, q = f...原创 2018-06-07 22:40:42 · 155 阅读 · 0 评论 -
dsu on tree(CF600E Lomsat gelral)
题意一棵树有n个结点,每个结点都是一种颜色,每个颜色有一个编号,求树中每个子树的最多的颜色编号的和。dsu on tree用来解决子树问题 好像不能带修改??暴力做这个题,就是每次扫一遍子树统计答案 时间O(n2)O(n2)O(n^2)或者会高级的数据结构解决 空间,编程难度是个挑战然而dsu on treedsu on t...原创 2018-05-31 12:36:27 · 187 阅读 · 0 评论 -
仙人掌基础
定义大概就是:连通图,每条边最多只属于一个环用处解别人出的毒瘤题 出毒瘤题 反正要学。。。习题仙人掌的最大独立集Bzoj4316: 小C的独立集做法没有环就是树DPDPDP 碰到环就做一遍环上的DPDPDP就好了,枚举一下一个点是否选即可# include &amp;lt;bits/stdc++.h&amp;gt;# define IL inline# d...原创 2018-05-31 12:07:35 · 1544 阅读 · 1 评论 -
虚树(Bzoj3611: [Heoi2014]大工程)
题面传送门虚树把跟询问有关的点拿出来建树,为了方便树DPDPDP 在LCALCALCA处要合并答案,那么把这些点的LCALCALCA也拿出来做法:把点按dfsdfsdfs序排列,然后求出相邻两个点的LCALCALCA,把这些点建一个虚树,维护一个栈就好了Sol虚树+树DPDPDP# include <bits/stdc++.h># define IL...原创 2018-05-30 22:30:41 · 115 阅读 · 0 评论 -
线性规划费用流解法(Bzoj1061: [Noi2008]志愿者招募)
题面传送门Sol线性规划费用流解法用与求解未知数为非负数的问题这道题可以列出一堆形如 x[i]+x[j]+x[k]+...>=a[p]x[i]+x[j]+x[k]+...>=a[p]x[i]+x[j]+x[k]+...>=a[p] 的不等式 我们强行给每个式子减去一个东西,使他变成这样 x[i]+x[j]+x[k]+...−y[p]==a[p]x[i]+x[...原创 2018-05-30 22:20:50 · 513 阅读 · 0 评论 -
分数规划(Bzoj1486: [HNOI2009]最小圈)
题面传送门分数规划分数规划有什么用? 可以把带分数的最优性求解式化成不带除发的运算 假设求max{ab,b&gt;0ab,b&gt;0\frac{a}{b},b>0} 二分一个权值kkk 令ab≤kab≤k\frac{a}{b}\le k那么a−k∗b≤0a−k∗b≤0a-k*b\le 0 如果得出来a−k∗ba−k∗ba-k*b的最大值大于000,那么kkk可以变大 ...原创 2018-05-30 22:05:36 · 168 阅读 · 0 评论 -
KDTree(Bzoj2648: SJY摆棋子)
题面传送门KDTree大概就是一个分割kkk维空间的数据结构,二叉树建立:每层选取一维为关键字,把中间的点拿出来,递归左右,有个STLSTLSTL函数nth_element可以用一下维护:维护当前这个点的子树的每一维的最大值和最小值,相当于维护了个高维矩形查询:直接遍历一棵树是O(n)O(n)O(n)的,利用一些独特的性质可以剪枝,因题而异奇技淫巧:把坐标绕原点转...原创 2018-05-30 21:50:43 · 220 阅读 · 0 评论 -
牛顿迭代,多项式求逆,除法,开方,exp,ln,求幂
多项式求逆给定A(x)A(x)A(x)求满足A(x)∗B(x)=1A(x)∗B(x)=1A(x)*B(x)=1的B(x)B(x)B(x)写成 A(x)∗B(x)=1(mod&amp;amp;amp;amp;amp;amp;amp;amp;amp;nbsp;xn)A(x)∗B(x)=1(mod&amp;amp;amp;amp;amp;amp;amp;amp;amp;nbsp;xn)A(x)*B(x)=1(mod \ x^n)我们会求A(x)∗B(x)原创 2018-05-31 12:26:07 · 1815 阅读 · 0 评论 -
NTT中可用素数模数原根表
g 是mod(r*2^k+1)的原根素数 r k g3 1 1 25 1 2 217 1 4 397 3 5 5193 3 6 5257 1 8 37681 15 9 1712289 3 12 1140961 5 13 365537 1 16 3786433 3 ...原创 2018-12-01 20:07:29 · 1401 阅读 · 0 评论 -
一类划分关系和指数级生成函数,多项式exp的关系
划分关系姑且这么叫着设满足性质 AAA 的集合为 SAS_ASA,每个元素有标号如果 SBS_BSB 是由若干个 SAS_ASA 组成的一个大集合设 aia_iai 表示大小为 iii 的 SAS_ASA 的个数设 bib_ibi 表示大小为 iii 的 SBS_BSB 的个数构造指数级生成函数A(x)=∑i=0∞aixii!A(x)=\sum_{i=0}^{\inft...原创 2018-12-08 18:50:22 · 512 阅读 · 0 评论 -
BZOJ3682: Phorni(后缀平衡树)
传送门后缀平衡树模板题用平衡树维护每一个后缀的排名关键在于查询两个后缀的大小可以用二分加hash,复杂度 log2nlog^2nlog2n 插入或者:每次前面插入一个字符,先比较两个后缀第一个字符的大小而后面的大小我们已经在平衡树上维护好了像这样分配权值给树上每个子树一个实数权值区间 [l,r][l,r][l,r],这个点权值为 mid=l+r2mid=\frac{l+r}{2...原创 2019-01-12 16:48:11 · 190 阅读 · 0 评论 -
UOJ#347. 【WC2018】通道(边分治)
传送门就是求两个点 a,ba,ba,b 使得 dis1(a,b)+dis2(a,b)+dis3(a,b)dis_1(a,b)+dis_2(a,b)+dis_3(a,b)dis1(a,b)+dis2(a,b)+dis3(a,b) 最大step1对第一棵树边分治那么变成 d1(a)+d1(b)+dis2(a,b)+dis3(a,b)d_1(a)+d_1(b)+dis_2(a,b)+dis...原创 2019-01-05 17:44:48 · 287 阅读 · 1 评论 -
Berlekamp-Massey算法
BMBMBM 算法用处它可以用来求常系数线性递推的系数,并且可以求出最短的求出来有什么用呢?你可以闷声Cayley-Hamilton定理优化递推矩阵快速幂算法简介首先设一个数列 fff,我们想要试出其中满足fn=∑i=1maifn−i(n&amp;gt;m)f_n=\sum_{i=1}^{m}a_if_{n-i}(n&amp;gt;m)fn=∑i=1maifn−i(n&gt;...原创 2019-01-04 22:38:03 · 2439 阅读 · 1 评论 -
牛客Wannafly挑战赛23F 计数(循环卷积+拉格朗日插值/单位根反演)
传送门直接的想法就是设 xkx^kxk 为边权,矩阵树定理一波后取出 xnkx^{nk}xnk 的系数即可也就是求出模 xkx^kxk 意义下的循环卷积的常数项考虑插值出最后多项式,类比 DFTDFTDFT 的方法假设我们要求Ci=∑j=0n∑k=0nAjBk[(j+k)&nbsp;mod&nbsp;n=i]C_i=\sum_{j=0}^{n}\sum_{k=0}^{n}A_jB_k[(...原创 2018-12-29 14:38:47 · 248 阅读 · 0 评论 -
N次剩余和二次剩余
N次剩余给定 N,a,PN,a,PN,a,P,且 PPP 最好为质数可以算出 xN≡a(mod p)x^N\equiv a(mod~p)xN≡a(mod p) 的解首先可以算出 PPP 的原根 ggg解方程 gy≡b(mod p)g^y\equiv b(mod~p)gy≡b(mod p),这个直接 BSGSBSGSBSGS设 gz≡x(mod&nb...原创 2018-12-28 20:25:05 · 999 阅读 · 0 评论 -
BZOJ3328: PYXFIB(单位根反演?)
传送门Sol设A=[1110]A=\begin{bmatrix}1 &amp;amp; 1 \\ 1 &amp;amp; 0\end{bmatrix}A=[1110]那么要求的相当于是∑i=0n[k∣i](ni)Ai\sum_{i=0}^{n}[k|i]\binom{n}{i}A^ii=0∑n[k∣i](in)Ai求出其中的 A0,0A_{0,0}A0,0 即可引入单位根(...原创 2018-12-27 21:23:42 · 356 阅读 · 0 评论 -
容斥与反演
反演设Fn∑i=0nAn,iGiF_n\sum_{i=0}^{n}A_{n,i}G_iFni=0∑nAn,iGiGn∑i=0nBn,iFiG_n\sum_{i=0}^{n}B_{n,i}F_iGni=0∑nBn,iFi下面的直接带入到上面Fn=∑i=0nAn,i∑j=0iBi,jFj=∑i=0nFi∑j=inAn,jBj,i=FnF_n=\sum_{i=0}^{n}A_{...原创 2018-12-26 19:35:51 · 266 阅读 · 1 评论 -
斯特林数
含义nnn个有区别的球放在mmm个相同的盒子内,要求盒子不为空的方案数 实际上也就是把数nnn拆成mmm个正整数和的方案数 记作S(n,m)S(n,m)S(n, m)性质S(n,0)=S(0,n)=0S(n,0)=S(0,n)=0S(n, 0)=S(0, n)=0,其中n∈Nn∈Nn \in NS(n,k)=0S(n,k)=0S(n, k)=0,其中k&amp;amp;amp;gt;n&amp;amp;amp;gt;=1...原创 2018-02-21 15:00:05 · 548 阅读 · 0 评论 -
51nod1538:一道难题(常系数线性递推/Cayley-Hamilton定理)
传送门Sol考虑要求的东西的组合意义,问题转化为:有 nnn 种小球,每种的大小为 aia_iai,求选出大小总和为 mmm 的小球排成一排的排列数有递推 fi=∑j=1nfi−ajf_i=\sum_{j=1}^{n}f_{i-a_j}fi=∑j=1nfi−aj常系数线性递推求一个满足 kkk 阶齐次线性递推数列 fif_ifi 的第 nnn 项fn=∑i=1kai×fn...原创 2018-12-20 22:18:19 · 537 阅读 · 0 评论 -
BZOJ2987:Earthquake(类欧几里德算法)
Sol设 n=⌊ca⌋n=\lfloor\frac{c}{a}\rfloorn=⌊ac⌋问题转化为求∑i=0n⌊c−axb⌋+1=∑i=0n⌊−ax+b+cb⌋\sum_{i=0}^{n}\lfloor\frac{c-ax}{b}\rfloor+1=\sum_{i=0}^{n}\lfloor\frac{-ax+b+c}{b}\rfloori=0∑n⌊bc−ax⌋+1=i=0∑n⌊b−...原创 2018-12-09 16:04:01 · 173 阅读 · 0 评论 -
BZOJ2229: [Zjoi2011]最小割(最小割树)
传送门最小割树算法初始时把所有点放在一个集合从中任选两个点出来跑原图中的最小割然后按照 sss 集合与 ttt 集合的归属把当前集合划分成两个集合,递归处理这样一共跑了 n−1n − 1n−1 次最小割可以证明图中任意一对点之间的最小割的数值都包含在这 n−1n − 1n−1 个数值当中把每次求出的最小割看成是两个点之间的边,可以建出一棵树定理1任意三点之间的最小割一定是两个相...原创 2018-12-09 14:40:05 · 382 阅读 · 1 评论 -
Catalan数的通项公式(母函数推导)
首先hn=∑ihihn−i−1h_n=\sum_{i}h_ih_{n-i-1}hn=i∑hihn−i−1写出 hhh 的母函数 H(x)H(x)H(x)那么H(x)=H2(x)x+1,H(x)=1−1−4x2xH(x)=H^2(x)x+1,H(x)=\frac{1-\sqrt{1-4x}}{2x}H(x)=H2(x)x+1,H(x)=2x1−1−4x(解二元一次方程取符号时候...原创 2018-12-19 20:06:07 · 1808 阅读 · 0 评论 -
有标号的DAG计数系列问题
传送门II设 fif_ifi 表示 iii 个点的答案那么枚举至少 jjj 个点的出度为 000∑j=0i(−1)j(ij)fi−j2(i−j)j=0\sum_{j=0}^{i}(-1)^j\binom{i}{j}f_{i-j}2^{(i-j)j}=0j=0∑i(−1)j(ji)fi−j2(i−j)j=0所以fi=∑j=1i(−1)j+1(ij)fi−j2(i−j)jf_i=\...原创 2018-12-06 17:50:14 · 1131 阅读 · 0 评论 -
拆系数FFT(任意模数FFT)
拆系数FFT对于任意模数 modmodmod设m=modm=\sqrt {mod}m=mod把多项式A(x)A(x)A(x)和B(x)B(x)B(x)的系数都拆成a×m+ba\times m+ba×m+b的形式,时a,ba, ba,b都小于mmm提出,那么一个多项式就可以拆成两个多项式的加法一个是a∗ma*ma∗m的,一个是bbb的直接乘法分配律,aaaaaa一遍,ababab一遍,...原创 2018-12-13 16:12:35 · 541 阅读 · 0 评论 -
求解所有的变量的所有次幂的每一种的和
标题很丑。。。问题描述nnn 个变量 anana_n,求所有的 sj=∑i=1naji,j∈[0,m]sj=∑i=1naij,j∈[0,m]s_j=\sum_{i=1}^{n}a_i^j, j \in [0,m]解决O(n∗m)O(n∗m)O(n*m) 太暴力了一个比较好的方法设 F(x)=Πni=1(aix+1)F(x)=Πi=1n(aix+1)F(x)...原创 2018-06-12 13:04:41 · 228 阅读 · 0 评论 -
矩阵树定理
做法入度矩阵-邻接矩阵 然后如果是有根树,去掉根的那一行和列 否则任意去掉一行一列 然后求出行列式就是生成树的个数 如果是有向图 可能就是就是指n−1n−1n-1条边,根可以到达所有点的图的个数求行列式高斯消元成上三角 对角线的乘积就是了...原创 2018-05-05 16:09:39 · 325 阅读 · 0 评论 -
原根
定义两种1.对于一个数P,gi≡1(mod P)P,gi≡1(mod P)P,g^i≡1(mod \ P)的最小正整数iii是φ(P)φ(P)φ(P),那么就称ggg是PPP的原根 2.假设一个数ggg对于PPP来说是原根,那么gimod Pgimod Pg^i mod \ P的结果两两不同,且有 1<g<P,1<i<P...原创 2018-02-10 14:52:47 · 366 阅读 · 0 评论 -
FFT\NTT总结
学了好久,终于基本弄明白了推荐两个博客: 戳我 戳我 再推荐几本书: 《ACM/ICPC算法基础训练教程》 《组合数学》(清华大学出版社) 《高中数学选修》预备知识复数方面找数学老师去 i2=−1,i为虚数的单位i2=−1,i为虚数的单位i^{2}=-1,i为虚数的单位 坐标系上纵轴就是虚数轴,复数就是这上面的点 三种表示法: 一般:a+bi,a...原创 2018-01-02 10:57:17 · 821 阅读 · 0 评论 -
平面图转对偶图(Bzoj1001:狼抓兔子)
如果只会用最小割做这道题那就太菜辣引入来自某学长 平面图:在平面上边不相交的图(边可以绕着画) 那么平面图的边与边就围成了许多个区域(这与你画图的方式有关) 定义对偶图:把相邻的两个区域连上边,形成的图 两个可能正确的东西:对偶图∈" role="presentation" style="position: relative;">∈∈\in平面图平面图的对偶图原创 2018-02-05 18:23:22 · 408 阅读 · 0 评论 -
严格次小生成树(Bzoj1977:[Beijing2010组队]次小生成树)
非严格次小生成树很简单,先做最小生成树 然后枚举没加入的边加入,替换掉这个环内最大的边 最后取minminmin严格次小生成树还是一样的 可以考虑维护一个严格次大值 最大值和枚举的边相同就替换次大值的边 否则替换最大值的边 最后取minminmin裸题Luogu 随你用各种姿势ACACACLCTLCTLCT常数大,但是好写,开O2O2O2可以过# in...原创 2018-02-10 13:26:27 · 242 阅读 · 0 评论 -
奇技淫巧来降幂
证明 求解ab≡x(mod p)a^b\equiv x(mod \ p) 扩展欧拉定理 ab≡⎧⎩⎨⎪⎪ab%ϕ(p) gcd(a,p)=1ab gcd(a,p)≠1,bϕ(p)ab%ϕ(p)+ϕ(p) gcd(a,p)≠1,b≥ϕ(p) (mod p)a^b\equiv\begin{cases}a^{b\%\ph原创 2018-01-12 08:45:05 · 313 阅读 · 0 评论