模版
文章平均质量分 67
Cold_Chair
我XXX就是饿死,死外边,从这里跳下去,也不会再做你九条可怜一个测试点
展开
-
Berlekamp-Massey算法学习小记
介绍:BM算法的作用是求一个序列的最短递推式。设原序列为aaa,即求出一个fff,f[1−len]f[1-len]f[1−len]有值。满足:a[i]=∑j=1lena[i−j]∗f[j](i>len)a[i]=\sum_{j=1}^{len} a[i-j]*f[j](i>len)a[i]=∑j=1lena[i−j]∗f[j](i>len)lenlenl...原创 2019-06-16 15:37:40 · 262 阅读 · 0 评论 -
替罪羊树学习小记
替罪羊树是一种没有旋转操作的二叉搜索树。或者说就是一颗二叉搜索树,暴力的那种。插入就是自上而下找到应该插入的地方而后插进去。我们知道这样搞肯定是可以变成O(n)O(n)O(n)的深度其复杂度的保证依赖于重构。即一棵子树不平衡直接提出来重构成完全二叉树。不平衡的定义为:max(siz[x0],siz[x1])>siz[x]∗αmax(siz[x0],siz[x1])&am...原创 2018-10-21 08:45:31 · 281 阅读 · 0 评论 -
无旋treap学习小记
高一才学这么基本的平衡树,退役了~鉴于旋转treap不能可持久化,与splay相比除了常数小以外没有什么不同,所以就不学了。treap:treap = tree + heap,即二叉搜索树+堆它的中序遍历是有序的,这是二叉搜索树的性质。且对于每一个点有一个随机的键值,对于整个树的任意一棵子树,键值满足堆的性质。基于随机,树高期望是log的。非持久化无旋treap:核心操作有两个:...原创 2018-10-17 08:49:55 · 388 阅读 · 0 评论 -
K-D tree学习小记(贴模板的)
K-D tree是一棵平衡二叉树。K_D即K-Dimention,k维的意思。可能维护什么k维偏序。建树:建树的过程中每次会把一堆点按照某一维切半,中间的提出来作根,分成两个部分作为左右子树继续建树。一个比较劣的维度选法是循环选取,雨露均沾。也可以随机钦点。正统的K-D tree是选方差最大的那一维。复杂度:O(k n log n)O(k~n~log~...原创 2018-10-18 16:19:25 · 245 阅读 · 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 · 608 阅读 · 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 · 633 阅读 · 0 评论 -
任意模数FFT模板(一大一小模数NTT)
练手题: 51nod 1172 Partial Sums V2 这个一大一小模数NTT可以比三模数NTT少三次DFT,但是有三次DFT常数会大,因为用了大数乘法黑科技,整体还是要快的。两个模数分别是: 998244353和29*2^57+1,原根都是3用中国剩余定理合并的时候,只能两两合并,类似于扩展CRT,推推式子就行了。Code:#include<cstdio&...原创 2018-08-13 21:44:16 · 493 阅读 · 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 · 597 阅读 · 0 评论 -
最短路那点事
“它死了…”——王队长最短路算法有很多很多种,我所知的有三种: 1.DIJ 2.SPFA 3.Bellman-ford由于第三种算法的复杂度是O(nm)O(nm)O(nm),且实现过于简单,可以用上限也是O(nm)O(nm)O(nm)的SPFA替换,所以就不提了。这篇博客主要是简略分析最短路算法的时间。朴素SPFA:没什么好讲的。优化1:循环队列: 针对...原创 2018-07-19 20:27:40 · 258 阅读 · 0 评论 -
Kruskal重构树学习小记
辣鸡NOI!这个树的作用是针对那些用并查集的,没有修改的,只有强制在线询问历史版本答案的题目。裸题:NOI2018 D1 T1把所有边按照海拔排序,加入并查集。要合并两个并查集时,建一个虚点,这两个并查集的顶点和虚点联系起来,这里用按秩合并。最后对于每一个并查集,找到最后加入的虚点,以它为根,遍历建树。这个树有一个性质,就是x子树内的边一定在x到father这条边之前加入,...原创 2018-07-18 20:04:10 · 488 阅读 · 0 评论 -
圆方树和广义圆方树学习小记
圆方树,解决毒瘤仙人掌问题的利器。有了圆方树,什么树上的算法都可以套在仙人掌上了,比如说点分治、树链剖分、虚树等等。OI数据结构无穷无尽,只有你不会的,没有你想不到的。资料参见WC2017讲稿。圆方树:圆方树分为圆点和方点。圆点就是原来有的点,方点是新加的点。对于每一个点双联通分量,这个分量里面的边要删掉,分量里的所有点往分量对应的方点连边,分量出去的边照连。可...原创 2018-07-05 21:00:56 · 978 阅读 · 0 评论 -
模拟退火算法学习小记
*“不能退火的题答不是好题答”——THUSC2018前言:之前听专题的时候就听过退火有两种,一种是真退火,一种是假退火。当时傻傻地分不清,现在终于是明白了。问题引入:费马点问题。平面上有n个点,求它们的费马点。 费马点的定义为到所有点距离和最短的点。问题剖析:费马点是没有稳定算法去求解的。而且费马点可能有多个。所以我们只能用近似算法去搞。真退火:首...原创 2018-07-11 21:43:49 · 630 阅读 · 0 评论 -
二维凸包学习小记
初三都毕业了还不会计算几何,真TM蛋痛。不过事实证明计算几何都是送命题,去死磕一不小心就翻车了,考场时还是要谨慎点。二维凸包定义:一个二维平面上有一些点,现在要求一个凸多边形,使它的顶点在这些点上,且这个凸多边形的内部(包括边上)包括了所有的点。构建二维凸包:首先找到一个一定在凸包上的点,那么找这些点中最下的点(如果y相同取x最小的)就行了。然后极角排序(不用求出角,叉积判...原创 2018-07-10 21:23:09 · 281 阅读 · 0 评论 -
虚树学习小记
问题引入:在一些树上询问中,有一些询问,它们每次询问多个点的产生的什么什么东西,询问很多,但是总点数很少。如果我们去暴力做,每次都要遍历整个树,复杂度就变成了O(nm)O(nm)O(nm)。如何利用询问的...原创 2018-07-01 19:25:23 · 295 阅读 · 0 评论 -
Miller-Rabin和Pollard-Rho算法学习小记
前言:很早前就看到这两个算法了,但是之前没有看懂。好吧,模拟赛遇到了,不学不行啊。Miller-Rabin测试:我们知道常用的最快的判断质数的办法约是O(n−−√)(n)(\sqrt n)的。Miller-Rabin测试是一种随机的算法,可以通过...原创 2018-05-28 21:37:23 · 636 阅读 · 0 评论 -
高维前缀和学习小记
问题引入:现有a[i](0&amp;lt;=i&amp;lt;2n)a[i](0&amp;lt;=i&amp;lt;2^n)a[i](0&lt;=i&lt;2n)对于每一iii,求∑j∈ia[j]\sum_{j∈i}a[j]∑j∈ia[j]这里的∈∈∈指二进制状态下的被包含。暴力解决问题:即暴力枚举子集求和。复杂度计算:∑i=0nCni∗2i\sum_{i=0}^nC_{n}^i*.原创 2018-11-03 10:58:13 · 854 阅读 · 0 评论 -
Johnson全源最短路算法
我们最熟悉的全源最短路算法那肯定是Floyd。不过Floyd的复杂度是O(n3)O(n^3)O(n3),显然难以接受。当图比较稀疏的时候,即点数n和边数m同阶时,Johnson算法便有了用武之地。假设图没有负边,则可以直接用堆优化的dij跑n次,时间复杂度为O(n∗((n+m)logm))O(n*((n+m)logm))O(n∗((n+m)logm))。如果有负边,考虑将图V转换为V’,V...原创 2018-11-07 16:55:58 · 2756 阅读 · 0 评论 -
析合树学习小记
析合树……怎么说呢,应该是一个排列的一种划分方法,用于处理连续段有关问题。首先定义连续段:对于一个排列的一个区间[x,y][x,y][x,y],如果把这个区间的数拿出来排序,是连续的若干个数,即y−x+1=max(x..y)−min(x..y)+1y-x+1=max(x..y)-min(x..y)+1y−x+1=max(x..y)−min(x..y)+1,则称[x,y][x,y][x,y]为...原创 2019-06-10 17:40:07 · 2845 阅读 · 0 评论 -
lemon要点
最新Lemon哪里找:GitHub上搜lemon plus,第一个就是了:https://github.com/Dust1404/Project_LemonPlus按照README.md的指示装就好了,linux和windows都可以然后好像所有的常见问题User Manual里都有。SPJ如下:#include <bits/stdc++.h>using namespac...原创 2019-06-01 09:20:50 · 672 阅读 · 0 评论 -
这个gedit有操作的呀!
最近才发现gedit是可以配个一键编译和运行的。是看了这篇博客:https://blog.csdn.net/u012965890/article/details/38472149简化起见,我在这里列出c++的操作步骤。首先我们打开一个noi linux的gedit(未联网装插件的):打开首选项-插件其实可以把所有的插件都打勾,注意勾上外部工具此时工具这里就会有manage e...原创 2019-05-23 07:36:41 · 1277 阅读 · 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 · 641 阅读 · 0 评论 -
半平面学习小记
从前的我看zzy那篇论文,真的是麻烦,后面发现其实半平面交其实是只比凸包难一点的东西。在学习半平面交之前,你需要对向量计算几何有初步的认识,还有就是atan2(y,x)函数的运用。atan2(y,x)函数见这篇博客:https://blog.csdn.net/chen825919148/article/details/7582510网上的这篇博客应该是比较易懂的:https://blog...原创 2019-04-01 20:53:44 · 491 阅读 · 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 · 326 阅读 · 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 · 918 阅读 · 0 评论 -
多项式全家福(缺插值和点值)
文章目录写法:vector写有什么好处?vector写的时候注意什么?Dft:求逆:写法:vector写有什么好处?1.分治NTT的时候不用处理麻烦的下标。2.传进函数的时候不用传指针而不会爆栈。3.copy,swap,reverse,clear,resize等vector的函数可以帮助您快速地处理。vector写的时候注意什么?由于本人非常非常地懒,所以全部都是用vector写的。...原创 2019-07-02 22:28:42 · 1018 阅读 · 1 评论 -
常系数齐次线性递推学习小记
此篇文章可能写的很不标准,请读者见谅。常系数齐次线性递推,可以理解为dp,大概是给出f[0..k−1]f[0..k-1]f[0..k−1]的初值,对于i&amp;amp;amp;amp;amp;gt;=k,f[i]=∑j=1k−1f[i−j]∗c[j]i&amp;amp;amp;amp;amp;gt;=k,f[i]=\sum_{j=1}^{k-1}f[i-j]*c[j]i&amp;amp;amp;amp;gt;=k,f[i]=∑j=1k−1f[i原创 2019-01-16 16:42:54 · 354 阅读 · 0 评论 -
FWT模板
我觉得那几个证明真的有点猥琐,以后有时间再搞懂吧(或许搞懂了也不会补的)推荐博客:yyb我觉得除了异或,结论都可以感性出来,异或也很好记。IFWT的话就是直接反解,不需要记。or:FWT(A)=(FWT(A0),FWT(A0+A1))FWT(A)=(FWT(A0),FWT(A0+A1))FWT(A)=(FWT(A0),FWT(A0+A1))IFWT(A)=(IFWT(A0),IFWT(...原创 2019-01-15 21:31:31 · 488 阅读 · 1 评论 -
浅谈我对(扩展)中国剩余定理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 · 746 阅读 · 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 · 535 阅读 · 0 评论 -
有上下界的网络流
不知道为什么一直不会这个东西,可能是太懒了无源汇上下界可行流:我们知道最基本的网络流就是有上界的网络流,那么加了一个下界有什么不一样呢?一个大胆的想法:默认每条边流到了下界,然后把边的流量限制设为上限-下限,直接跑。这显然是不对的,不然可行流不就一定存在了吗?我们发现这样不能满足网路流的流量守恒。如果默认每条边流到了下界,那么对于一个点来说,它就可能不满足流量守恒了。设q[i]q...原创 2018-12-28 16:32:43 · 297 阅读 · 0 评论 -
动态dp学习小记
据说这东西猫锟在WC2018讲过,怎么一点印象都没有呢?当时应该是在冬眠NOIP2018T6如果用动态dp去看就是一道裸题,不过因为询问是相互独立的,即修改没有时效性,可以直接用倍增代替动态dp。先看一道题:P4719 【模板】动态dp如果没有修改,这题就是树形dp入门题:没有上司的晚会设f(x,0/1)f(x,0/1)f(x,0/1)分别表示以x为根的子树中,选x的最大独立集,不选x...原创 2018-11-20 22:46:41 · 417 阅读 · 0 评论 -
NTT(快速数论变换)和多项式求逆学习小记
NTT类似于FFT,只是把单位复数根改成了具有特殊性质的数,当然是在mo意义下的。假设是mo一个数p。p一定要是一个质数,并且p-1 = 2^x*y,2^x次方还要比较大。原根:对于一个质数p,它一定有原根g。满足g^x(mod p)意义下互不相同(0<=x<<<<winwniw_n^i对应gi∗(mo−1)ngi∗(mo−1)ng^{i*{(...原创 2018-04-13 20:21:34 · 1048 阅读 · 0 评论 -
Tarjan的各种操作
最近比赛时做一道仙人掌的题就因为tarjan打错而WA0了,非常伤心,突然发现自己脑海中的tarjan真是一坨shit(我无意冒犯tarjan大神),所以去找了图论专题的PPT复习了一波。dfn,low的含义在这里就不解释了。有向图的tarjan:有向图的tarjan只有一种用途,就是缩强联通分量。2-SAT问题中也可以判合法性。在有向图tarjan中,会遇到三种边: 1...原创 2018-04-12 19:05:53 · 1262 阅读 · 0 评论 -
求lca(最近公共祖先)的各种方法
其实很早前就学了求lca的方法,但是当时没有总结归纳的习惯,现在再把这些总结一遍。原创 2017-05-06 11:47:21 · 4508 阅读 · 1 评论 -
计算几何模板
计算几何板子。原创 2017-04-11 21:56:27 · 523 阅读 · 0 评论 -
高斯消元裸题(期望)——【HNOI2013】游走
高斯消元入门原创 2017-04-11 21:25:24 · 595 阅读 · 0 评论 -
高斯消元模板
高斯消元:用迭代的办法打会简洁一些。有些精度上的细节需要注意。多次消元要清空use和cho数组。实数高斯消元:int use[Maxn], cho[Maxn];void Solve_equation(int n, int m) { //n是元的个数,m是方程数 fo(i, 1, n) { fo(j, 1, m) if(a[j][i] != 0 &am...原创 2016-08-15 17:17:23 · 639 阅读 · 0 评论 -
网络流——最大权闭合子图
也许看到“最大权不闭合子图”这个词许多人就懵逼了。原创 2016-10-17 20:26:09 · 3391 阅读 · 1 评论 -
费用流模板——ZKW
先让我们回顾一下SPFA算法:设d[x] = x到T的最短距离对于i,j必有d[j] + c[i][j] >= d[i]SPFA算法就是每次找到d[j] + c[i][j] = d[i]的等式,走最短路更新答案。 这样的话没有充分利用到已经求过的,有些图会很慢。我们可以借鉴KM算法的思想,每次把d[i]增大一点点,就可以找到范围更大的j,答案也是对的。每次增高的距离就是已走过点到为走过点的最小高度原创 2017-03-29 20:25:28 · 1820 阅读 · 0 评论 -
费用流模板——SPFA
先解释一下费用流:对于一个网络, 我们可能会有多组最大流, 现在我们给每条边附上一个费用系数, 每条边产生的费用 = 这条边的流量 × 这条边的费用系数,常见的问题是求最小费用最大流。原创 2017-03-29 12:52:52 · 894 阅读 · 0 评论