
学习笔记
文章平均质量分 88
Mys_C_K
人生有许多道:曾经踏足的是道,即将踏往的也是道,那什么才是道呢?唯有脚下走的才是道。一切精神或者物质都归于虚无,然后从混沌中衍生出三万道。在悲喜间涉足一条无数前人经历过,且将有无数后人奔赴的道,无论是否已经或者将要到达彼岸,然后便不再回头或是左顾右盼,即使有些道繁盛至极,夜灯如昼,无数人一浪又一浪的涌去,造就了世人皆知的辉煌;即使有些道草木凋敝,荒草丛生,只等勇敢的开拓者斩开荆棘,创造一片天地;这些都无所关,无所在意,彼岸何如、来日何方甚至过往旧事都化作一缕云烟,飘渺碧霄,我自撷高山之月色,独随足落处往行。
展开
-
「学习笔记」无标号生成树计数总结
感觉关于树/图计数是一门博大精深的学问,不知道这辈子有没有搞到足够明白的机会了啊QwQ一、有标号无根树计数:prufer序列即可。 二、有标号有根树计数:上一个东西乘以n即可。三、无标号有根树计数: 基本上是这篇的详细版本。考虑令fnfnf_n表示n个点的无标号有根树数量,其生成函数为F(x)=∑i>0fixiF(x)=∑i&a原创 2018-09-10 09:52:57 · 2746 阅读 · 0 评论 -
「学习笔记」[POI2014] bzoj 4543 Hotel加强版 - 长链剖分 - 学习笔记
长链剖分定义是把最大子树改为最大深度(下文沿别的blog仍然称为重儿子)。第一个应用是要求O(nlgn+q)的时间复杂度内求k级祖先(并且强制在线)。做法是长链剖分有这样一个性质:一个点x的k级祖先y,从y走到链底长度不小于k,这个显然。现在要求x的k级祖先,做法是对每个点维护朴素倍增算法的倍增数组,以及对每条链的链顶(假设这条链长度是len)维护沿这条链向下len步和向上len步共O(2le...原创 2018-08-31 19:23:33 · 240 阅读 · 0 评论 -
「学习笔记」bzoj 3224 & bzoj 3223 平衡树两件套 - 非旋treap - 学习笔记
非选treap真是个好东西! bzoj3224有个实现细节我看网上都是错的,即split的时候,可能有重复元素(也就是1 x了相同的x很多次),然后求kth的时候不能把那个点拆成两个(否则merge的时候正确性和代码复杂度和时间复杂度都不能保证……吧?)。还有就是非旋treap其实不需要像splay一样一开始插入一个inf和INF来减少特判。 bzoj 3224:#include<i...原创 2018-09-04 11:25:27 · 250 阅读 · 0 评论 -
[学习笔记] Mys_C_K的独立集好题 - 动态dp - 树剖 - 线段树
注意修改的时候要先从上到下减去,然后修改好后从下到上加上。 注意轻边的信息是真的dp值,特判空信息。#include&lt;iostream&gt;#include&lt;cstring&gt;#include&lt;cstdio&gt;#include&lt;algorithm&gt;#define lint int#define gc getch原创 2018-08-21 12:41:08 · 249 阅读 · 0 评论 -
[真学习笔记] 前夕 - 单位根反演 - 广义容斥
这次是真的学习笔记了…… 真正意义上搞明白广义容斥实在说啥…… 真正搞明白了单位根的那个性质……题目大意:有个大小为n的集合S,求所有选出若干非空且互不相等的子集使得交集大小是k的倍数。要求一个O(nk)的做法。 先来说说二项式反演这件事情: P(x)=∑xk=0Q(k)(xk)Q(x)=∑xk=0P(k)(xk)(−1)x−kP(x)=∑k=0xQ(k)(xk)Q(x)=∑k=0xP...原创 2018-08-03 15:19:12 · 1920 阅读 · 0 评论 -
[学习笔记] 替罪羊树
好像不重构的替罪羊树跑得最快……#include<iostream>#include<cstring>#include<cstdio>#include<algorithm>#include<climits>#include<assert.h>#define N 100010#define alpha 0.78...原创 2018-08-07 17:12:04 · 283 阅读 · 0 评论 -
[学习笔记] KthMax-Min - Min-Max容斥
有n个数字,每单位时间会出现一个数字,第i个数字有pimpim\frac{p_i}{m}的概率出现,并且∑ni=1pi=m∑i=1npi=m\sum_{i=1}^n p_i=m,求出现了k个数字的时间的期望。 n≤1000,m≤10000,n−k≤10n≤1000,m≤10000,n−k≤10n\le1000, m\le 10000,n-k\le10 这个玄学数据范围可海星,可以做到O(nm(...原创 2018-07-30 14:31:13 · 1158 阅读 · 0 评论 -
[学习笔记] SPOJ DIVCNTK - Min_25筛
这些各种乱七八糟的筛法真难懂…… 首先Min_25筛的基本思想就是在不停的枚举最小质因子。 zzt的论文根本看不懂。 过程是这样的,既然F是个低阶多项式,那么先要求: gk(n)=∑ni=1[i&amp;amp;amp;amp;amp;nbsp;is&amp;amp;amp;amp;amp;nbsp;a&amp;amp;amp;amp;amp;nbsp;prime]ikgk(n)=∑i=1n[i&amp;amp;amp;amp;原创 2018-07-29 21:58:24 · 828 阅读 · 0 评论 -
[学习笔记] bzoj 3328 PYXFIB - 单位根反演
首先求出一个原根g,那么单位根w取g(p−1)/k)g(p−1)/k)g^{(p-1)/k)} 性质是这样的:w^n的0次到k-1次相加取平均数为1,当且仅当k整除n。 构造多项式F(x)=(I+xM)nF(x)=(I+xM)nF(x)=(I+xM)^n,I是单位矩阵,M是Fib数列的转移矩阵,那么其k次项系数显然就是(nk)(nk)\binom n k 。这样做完了。#include...原创 2018-07-29 11:42:46 · 601 阅读 · 0 评论 -
[学习笔记] 常系数线性递推
结论是,若$\sum_{i=0}^{k}a_ih_{n-i}=0$,那么$h_n=\sum_{i=0}^{k-1} b_i h_i$,其中$b$为$x^n$对$A^T(x)$取模后的结果。实在不想写多项式取模了…… 所以写了个k&lt;=2000的版本。原创 2018-07-29 09:11:15 · 427 阅读 · 0 评论 -
[学习笔记] 多项式求逆、带余除法、取模、求对数、求指数
一晚上写完求逆取模求ln求exp真酸爽 明天再顺手把求值插值写了人生就圆满了 求逆:#include&lt;iostream&gt;#include&lt;cstring&gt;#include&lt;cstdio&gt;#include&lt;algorithm&gt;#define gc getchar()#define lint long long#d原创 2018-07-23 21:42:38 · 657 阅读 · 0 评论 -
贝尔级数在构造杜教筛卷积中的应用
学了一发贝尔级数 (划掉)人赢(划掉)zzs好强啊,rqy好巨啊 群里神仙讨论……贝尔级数只针对积性函数,如无特殊说明下文函数均为积性函数。 定义f模p的贝尔级数为: fp(x)=∑0≤if(pi)xifp(x)=∑0≤if(pi)xif_p(x)=\sum_{0\le i}f(p^i)x^i 特别的,对于完全积性函数来说: fp(x)=11−f(p)xfp(x)=11−f(p)x...原创 2018-07-23 15:40:08 · 1021 阅读 · 0 评论 -
一道旅行者好题 By liuzhangfeiabc - 圆方树 - 学习笔记
在SDOI2018Round2比赛当场学(y)会(y)了怎么写点双以及建圆方树 但是那个题我懒得找当时写的代码了,因此不做记录,那这个题当做学习笔记 题目大意就是给你一张图,每次询问是否存在a到c到b的点不重复路径,abc互不相同。 题解,圆方树就是,新建点双个数个点,这些点称为方点,每个点向点双里面所有点连边,原图中的边不保留,特别的,点双的定义被扩展成删去任意一个点之后图联通(而不是原来...原创 2018-05-21 19:39:33 · 863 阅读 · 0 评论 -
BZOJ 5125 小Q的书架 - 分治维护决策单调性dp - 学习笔记
决策单调性指的是,对于i&lt; j,存在某个时刻k,满足i的转移不优于j,那么对于时刻t&gt;k,i依然不会由于j。因此若将每个点的最优决策点(相同则最右)写下来,会是单调的。如果这个dp可以很快的计算一个决策点对于一个时刻的影响(即,如果转移方程是now[x]=min_{y#include&lt;iostream&gt;#include&lt;cstring&gt;#include&原创 2018-04-27 23:27:46 · 612 阅读 · 0 评论 -
「学习笔记」【清华集训2014】uoj #41 矩阵变换 - 稳定婚姻算法 - 学习笔记
题解:有这样一个算法:给定n个排列Ai和n个排列Bi,求一个排列p使得:∀i,j∈[1,n],j≠pi,Ai,pi&amp;lt;Ai,j∨Bk∣pk=j,j&amp;lt;Bi,j\forall i,j\in[1,n],j\neq p_i,A_{i,p_i}&amp;lt;A_{i,j}\vee B_{k|_{p_k=j},j}&amp;lt;B_{i,j}∀i,j∈[1,n],j̸=pi...原创 2018-10-02 15:55:01 · 339 阅读 · 0 评论 -
[学习笔记] Berlekamp-Massey算法 - 学习笔记
重新实现了一个看上去就像是对的的东西。推荐:传送门讲的很清楚了,不多赘述。#include<bits/stdc++.h>#define gc getchar()#define rep(i,a,b) for(int i=a;i<=b;i++)#define Rep(i,v) rep(i,0,(int)v.size()-1)#define lint long long...原创 2018-10-24 20:07:54 · 705 阅读 · 0 评论 -
[学习笔记] UVA 1659 Help Little Laura - 最大费用循环流 - 学习笔记
先边权取负变为最小费用循环流。然后对于边<u,v,f,c>,如果c>=0,则还是连<u,v,f,c>。否则建立源点汇点,连<s,v,f,0>,<v,t,f,0>,<v,u,f,-c>,并且ans+=c。然后ans+最小费用最大流就是答案。本质类似带下界费用流和最大权闭合子图,先钦定负权边都跑了,然后退最小费用的流使得流量平衡...原创 2018-10-30 21:27:46 · 322 阅读 · 0 评论 -
「学习笔记」网络战争 - KD-Tree - 最小割树 - 学习笔记
题目大意就是让你实现一个KDT和最小割树(大雾)然后发现两个都不会,就赶紧去学习了一发姿势。顺带练习了一发namespace都的使用姿势。KDT本质上就是个做剪枝的过程,很好理解。最小割树是这样的,每次随便选择一个S和T,然后求出最小割w,然后在最小割树上连(S,T,w)即可。然后一对点的最小割是路径上都的最小值。(这垃圾题写了将进7个k也真爽翻了的说#include&lt;iostr...原创 2018-09-22 17:13:07 · 348 阅读 · 0 评论 -
[学习笔记]线性代数 - 回文自动机 - 学习笔记
题目大意:每次往左/右加一个字符,问回文串和本质不同的回文串数量。回文自动机模板题。#include<bits/stdc++.h>#define rep(i,a,b) for(int i=a;i<=b;i++)#define Rep(i,v) rep(i,0,(int)v.size()-1)#define lint long long#define ull unsig...原创 2018-12-08 15:51:56 · 274 阅读 · 0 评论 -
[学习笔记] THUSCH 2017 LOJ 2977 巧克力 - 斯坦纳树 - 随机化 - 学习笔记
题目大意:给你一张图,要求一个包含至少k种颜色的连通块使得在点数最少的前提下中位数最小。k<=5。题解:首先中位数最小怎么办,可以二分答案,将小的视为M,大的视为M+1,其中M是个比较大的数字,然后要求权值之和最小。然后可以说明一定存在一种最优解,包含恰好k种颜色(如果有解的话)。那么我们给每种颜色随即一个[1,k]的权值,那么该最优解包含k种不同的权值概率大约会是k!kk\frac{...原创 2019-02-25 15:09:58 · 611 阅读 · 0 评论 -
[学习笔记] [JSOI2018] luogu P4557 战争 - 闵可夫斯基和 - 凸包 - 计算几何 - 学习笔记
闵可夫斯基和即,两个凸包按照边的斜率从小到大加入即可。本题中∃b+Δ⊆A⇒∃b,Δ⊆A−b⇒Δ⊆{a−b∣a∈A,b∈B}\exist b+\Delta\subseteq A\Rightarrow\exist b,\Delta\subseteq A-b\Rightarrow\Delta\subseteq\{a-b|a\in A,b\in B\}∃b+Δ⊆A⇒∃b,Δ⊆A−b⇒Δ⊆{a−b∣a∈A...原创 2019-02-25 14:59:43 · 374 阅读 · 0 评论 -
[学习笔记]多项式多点求值与多点插值 - 多项式理论 - 学习笔记
下文及代码中所有提及某个函数是以n为界或者是n次的,意思是其最高次项次数n−1n-1n−1。关于求逆,由牛顿迭代:F=G−1Fn+1=2Fn−Fn2GF=G^{-1}\\F_{n+1}=2F_n-F_n^2GF=G−1Fn+1=2Fn−Fn2G关于多项式取模,A(x)以n为界,B(x)以m为界,需要求C(x)和D(x),使得C(x)的界是n-m+1,D(x)的界是m-1:A(x)=B(...原创 2019-02-25 14:53:46 · 990 阅读 · 1 评论 -
「学习笔记」二次剩余 - 二次剩余 - 学习笔记
下文只在模质数意义下讨论。即给定n&gt;0,p,pn&gt;0,p,pn>0,p,p是质数,求所有x∈[0,p),x2=n(modp)x\in[0,p),x^2=n\pmod px∈[0,p),x2=n(modp)。若存在解则nnn称为ppp的二次剩余。首先将p=2p=2p=2的特殊情况判掉。下文ppp是奇质数。首先显然模奇质数ppp意义下会有恰好p−12\frac...原创 2019-02-18 13:21:20 · 976 阅读 · 3 评论 -
[学习笔记] 素数测试与质因数分解 - 学习笔记
copy了luogu上目前rk1的板子分解质因数其中有一段还不知道在干嘛:枚举k是大于等于2的2的幂,每次初始化x0=xcur,q=1x_0=x_{cur},q=1x0=xcur,q=1,然后for i∈[1,k] x=F(x),q=q×∣x−x0∣,if i&gt;M and gcd(q,n)&g...原创 2018-12-20 21:01:13 · 222 阅读 · 0 评论 -
[学习笔记] 量产毒瘤题 - 纳什均衡 - 后缀数组 - 学习笔记
题目大意:给你一个字符串,两个玩家分别独立同时的选择一个后缀,并且计算两个后缀的最长公共前缀。第一个玩家希望它尽量大,另一个希望尽量小,问最后期望多长。题解:前缀知识:纳什均衡纳什均衡毫无疑问是个很复杂的问题,我们之看一个特例来了解一下。ckw和妹子玩游戏(大雾),他跟妹子说我们同时独立的写出一个0或者写出一个1,若我们都写出了0,我给你a块钱;若都写出了1,我给你b块;若我0你1,你给我...原创 2018-12-26 15:45:41 · 1122 阅读 · 2 评论 -
[学习笔记] 星空穿越 - 欧拉回路 - 学习笔记
题目大意:给你一张无向图,每条边有一个经过次数的奇偶性,找到尽量少的路径(可以不简单)满足这个条件。题解:对与要求经过偶数次的边拆成两条边。然后度数为奇数的点任意配对,跑欧拉回路算法。欧拉回路算法有个很简单的算法:任意dfs,出栈的时候将入边放到答案序列的前端。特判一个连通块全是要求经过偶数次的边即可。#include<bits/stdc++.h>#define rep(i...原创 2018-12-03 10:03:18 · 877 阅读 · 0 评论 -
[学习笔记] Mys_C_K的独立集好题 - 动态dp - 树剖 - 全局平衡二叉树 - 学习笔记
题目大意:单点加,或者求以1为根时某个点的子树的最大独立集。题解:学习了“全局平衡二叉树”这个高级操作。之前两个log的做发,对每条重链单独开线段树,在luogu的动态dp那个题里跑得比一个log还快,并且通过了加强版。一个log的做发。还是类似于两个log的做法,先链分治(树剖),然后现在我们不用线段树维护每一条重链。我们对一条重链的每个点求其轻子树的size之和再+1,然后每次选择...原创 2018-11-27 09:11:25 · 671 阅读 · 0 评论 -
[学习笔记] 杨柳 - zkw费用流 - 学习笔记
辣鸡卡费用流题题目大意:给你一张有障碍网格图,n个棋子和n个洞,每次可以移动一枚棋子到(x±a,y±b),(x±b,y±a)的八个位置,不能移出边界或移动到障碍。问最少几步能使得每个洞恰好有一个棋子。任意时刻同一位置最多一个棋子。题解:最后的限制没用。直接建图跑费用流即可,然后需要用zkw费用流。zkw费用流实现起来就是使用spfa代替原来的bfs进行dinic的增广,然后dfs的时候加一个...原创 2018-11-26 12:25:55 · 222 阅读 · 1 评论 -
[学习笔记]Mys_C_K的链接好题 - 组合计数 - 多项式理论 - EGF学习笔记
重新认知了一遍关于EGF(指数生成函数)的理论。两个对象A和B的拼接对等于EGF的乘积,这里的拼接是区分A和B的。因此如果要将同类的对象拼接起来,例如如果要拼接k次,那么对等于Akk!\frac{A^k}{k!}k!Ak。因此,若一个对象B是若干A自身拼接而成,那么:B=∑i≥0Aii!=eAB=\sum_{i\geq0}\frac{A^i}{i!}=e^AB=i≥0∑i!Ai=eA...原创 2018-11-11 19:24:47 · 547 阅读 · 0 评论 -
[学习笔记] 上下界网络流学习笔记
带下界的流建图如下:对于&lt;u,v,down,up&gt;,新建超级源点S’和超级汇点T’,连&lt;S’,v,down&gt;,&lt;u,T’,down&gt;,&lt;u,v,up-down&gt;无源汇可行流:直接判是否满流即可。有源汇最小流:连&lt;T,S,INF&gt;,然后跑完F(S’,T’)的网络跑F(S,T)就是答案原创 2018-10-30 21:39:25 · 219 阅读 · 0 评论 -
bzoj 1091 Zju2112 Dynamic Rankings - 整体二分 - 学习笔记
整体二分·屯板子#include<iostream>#include<cstring>#include<cstdio>#include<algorithm>#include<assert.h>#define N 110000#define lb(x) (x&-x)#define debug(x) cerr&l...原创 2018-04-27 17:23:31 · 209 阅读 · 0 评论 -
bzoj 3162 独钓寒江雪 - 无标号树同构 - dp - 学习笔记
对于无标号树计数首先要找到其重心作根,如果有多个就再建一个点连着两个点;这样能够保证一个节点的某棵子树不会和整棵树减去当前这颗子树形成的树同构,这样就转化为有根树。哈希就随便哈希即可。这个题,如果一个节点有x颗同构的树并且每一颗子树都有y中方案,那么就相当于y个变量每个变量取值&gt;=0其和为x的方案数,组合数一波即可。#include&lt;iostream&gt;#include&...原创 2018-05-01 12:33:35 · 247 阅读 · 0 评论 -
[学习笔记] bzoj3224 普通平衡树:splay模板
没啥好说的。 唯一要注意的是,每次操作后有了修改一定要splay!#include<iostream>#include<cstring>#include<cstdio>#include<algorithm>#include<climits>#include<assert.h>#define N 110000#define INF INT_MAX#define inf INT_MIN原创 2017-12-20 11:34:21 · 339 阅读 · 0 评论 -
[学习笔记]概率与期望dp做题总结
之前做的一些就不记录了,只记录现在开始做的一些题。T0. 入门题给一个有向无环图,每次等概率走某一条边,求从1走到n的边权和的期望。做法1,直接设dp[x]表示答案,转移显然。做法2,考虑从定义入手分析出一种做法。期望的定义是E=sigma Pi*Wi,就是Wi出现的概率乘上他自己。本题中即Answer(G) = simga { P(p_i)*W(p_i) },p_i表示一条路原创 2017-10-25 14:25:37 · 974 阅读 · 0 评论 -
[学习笔记]BZOJ3224 普通平衡树 - 平衡树Splay
传送门rotate和splay跳过insert就是insert,不要忘了splay。find写成找第一个>=v的。前驱后继就是find后先往左右跳一步然后能往右左走就走del就是find后把前驱后继splay的根和根的右儿子删除即可。getk就是find后splay到根然后左子树大小+1getkth就是在上面二分即可。为了保证存在前驱后继可以先insert(±I原创 2017-08-02 20:35:18 · 453 阅读 · 1 评论 -
[学习笔记][HEOI2013]BZOJ3165 Segment - 超哥线段树
传送门题解:超哥线段树先考虑直线L。首先,假设当前线段树上区间的直线是L2,如果L完全在L2的上面或者L2完全在L的上面那么把其中一个舍弃,递归结束。否则求一下两直线交点。为了方便起见,把左端点比较小的记作L1,另一条记作L2。求一下两条直线的交点。如果它小于等于mid,说明L1在右面的区间上完全覆盖了L2,因此当前区间保存L1,把L2下传到左区间。否则要把L1下放到右原创 2017-08-02 20:27:46 · 845 阅读 · 0 评论 -
[学习笔记] 后缀自动机学习笔记
我终于会后缀自动机啦!讲义什么的网上多了去了事实上照着陈立杰老师的营员课件就能学顺便把他的指针代码改成了数组://luogu 3804#include#include#include#include#define MAXN 1000010#define MAXM 2000010#define MAX_SIG 26#define lint long longusin原创 2017-07-24 15:23:17 · 410 阅读 · 0 评论 -
[学习笔记] 点分治学习笔记
点分治学习笔记OI中有一类在树上与路径有关的题目。如果直接枚举两个端点复杂度至少O(n^2)通常无法承受。如果考虑枚举路径的LCA通过一些奇技淫巧计算,通常至少需要dfs一遍子树,复杂度依旧无法承受。因此可以考虑将所有路径分为两类:经过x的和不经过x的。将经过x的路径全部处理完了之后,相当于是把x去掉,原图变成森林,对每一颗树进行类似做法。显然如果每一层计算的复杂度是O(n原创 2017-07-24 12:55:29 · 377 阅读 · 0 评论 -
[学习笔记] 拓展欧几里得算法
一直对拓展欧几里得算法处于不明觉厉的状态觉得接下来我要好好研究数论,首当其冲的当然就是拓展欧几里得算法啦!题:求ax+by=c的解。b将问题规模变小,令a=kb+d,有(kb+d)x+by=c,亦即b(kx+y)+dx=c。然而发现b比a小,d比b小,所以问题规模变小了。因此有代码:inline int exgcd(int a,int b,int &d,int &x,int原创 2017-07-23 14:07:51 · 355 阅读 · 0 评论 -
HDU 2089 不要62-数位DP-学习笔记
吐槽这个题各种特判!简直比后缀数组还难写!(尽管还未写过后缀数组……)所幸1A了……要不调试都懒得调试时间复杂度是O(logN),以10为底,这意味着复杂度近乎O(1)……题目链接:右转进入题目题目大意:给定[l,r],问其中有多少个数字不包含4和连在一起的62?很明显就是数位DP嘛为了学习数位DP,我们先看一个简单题:给定[l,r],问其中有多少个数字?学长我原创 2017-05-07 16:51:40 · 409 阅读 · 0 评论