- 博客(75)
- 收藏
- 关注
原创 Hall 定理学习笔记
对于一张二分图GVEG=(V,E)GVE,设其左右部点集分别为VLVRV_L,V_RVLVR,不妨认为∣VL∣≤∣VR∣∣VL∣≤∣VR∣,定义该二分图的一组完备匹配为左部∣VL∣|V_L|∣VL∣个点全部成为匹配点的匹配。Hall 定理讲的是,定义NvN(v)Nv为节点vvv的邻居集,如果对于任意S⊆VLS⊆VL,均有∣S∣≤∣⋃u∈SNu∣∣S。
2025-06-25 09:33:11
1053
原创 Dilworth 定理小记
感觉这部分知识在数学里是非常深奥的一个分支,但由于时间有限只能简单记录一下它在 OI 中的部分应用。首先要明白偏序集若集合SSS中的一个二元关系∗∗满足自反性,传递性,反对称性,则称SSS为一偏序集,∗∗为SSS上的一个偏序关系a∗aa*aa∗a成立a∗bb∗c→a∗ca∗bb∗c→a∗ca∗bb∗a→aba∗bb∗a→ab用图论的语言去刻画偏序集的话得到的就是一张传递闭包后的DAGDAGDA。
2025-06-25 08:22:37
830
原创 Prufer 序列小记
Prufer 序列是一种将一棵用一个唯一的整数序列表示的方法,本质上它做到了树与序列的双射,从而让我们能够方便的在序列上刻画一些树的性质。以下讨论中不考虑树的节点数n1的情况。
2025-06-16 21:46:36
1123
原创 多项式全家桶
用 F(x)=∑i=0fixiF(x)=\sum\limits_{i=0} f_i x^iF(x)=i=0∑fixi 表示一个多项式,用 [xn]F(x)=fn[x^n]F(x)=f_n[xn]F(x)=fn 表示 F(x)F(x)F(x) 第 nnn 项系数。设 nnn 为最大的非零的 fnf_nfn,那么 F(x)F(x)F(x) 的次数为 nnn ,记作 deg(F(x))=n\deg(F(x))=ndeg(F(x))=n,注意 nnn 次多项式有 n+1n+1n+1 项。多项式加法:F(x
2025-03-29 17:33:30
974
原创 NOI 2022 攻略
从分数线上来看是比较困难的一年 NOI 了,十分考验选手的实力和心态先不考虑 333 操作查询,怎么维护序列呢?末尾加,删;合并两个序列,容易让人想到链表,这些操作链表都可以处理接下来考虑怎么查询,我们直接对每个序列维护一棵值域线段树,如果是查一个序列的绝对众数的话,可以在线段树上二分,每次比较左右儿子的数字个数,递归到大的那一边,由绝对众数的定义这样最终肯定是能找到的对于查多个序列,我们把每次询问的 mmm 棵值域线段树的根拿出来,计算所有左儿子以及所有右儿子的和,然后一起往左或者右儿子走就行了因为是值域
2025-03-27 16:00:56
484
原创 THUWC 2025 游记
六点半的高铁,五点半就起,困飞高铁上睡眠十分不好,蚌醒来之后看了几集末日三问,呜呜太好看了中午到了全季酒店,吃完饭休息了一会就去报道了然后排队排了Onns后终于拿到了报到证,还送了清华的一些纪念品,感觉很牛接下来试机,刚开始由于键盘过于逆天,表现为键盘上space回弹过慢,敲一下出来一堆空格,赶紧申请换了屋里很热!!vscode上/下移行vscode 内打开终端删除整行,好像默认是一定要调成backspace!!然后登录了 OJ,注意事项里交代了正赛是pretest。
2025-01-16 21:04:27
705
原创 NOI Linux 使用小技巧
显示当前所在位置的所有子目录;的话需要在终端界面 手动输入;,在当前目录下生成一个名字为。运行这个文件,如果没有。一般来说后两个结合着看就行。
2025-01-06 15:32:03
563
原创 11.21 小清新图论专场训练
从边的角度分析:边要么是连接不同字符,这样的边反复横跳是没意义的;还有一种套路:边数很多的时候(比如完全图),通常可以分析出来许多边是没用的,只保留那些较优的边,再跑最小生成树算法。种元素构出的最大长度就是 不同的二元组个数,不是最大长度的话显然删掉序列末尾一定不会变得不合法。的边,可以通过反复横跳来修正中间括号匹配的限制,那么唯一的限制就是。的一条边,二元组需要全部出现,就是边要全部经过,由此想到欧拉路径。再考虑路径:简单的情况是不经过第二类边,那么路径上一定是。的,每次询问的时候现做即可,复杂度。
2024-11-21 21:31:10
1229
原创 P7450 [THUSCH2017] 巧克力 题解
虽然与斯坦纳树的模板不太相同,但我们稍微转化一下:考虑对每种颜色新开一个虚点,把这个虚点与所有该颜色的点连边,边权为。枚举所有可能的颜色情况,接下来的问题转化成:有 一些点,一些边,求一棵最小生成树,使得每种颜色都出现过至少一次。里,首先这样不会让最终答案更优,不至于不合法;的转移 ) ,得跑 spfa,但不知道为什么我写了个 DJ 跑过了。实际实现时,我们没必要真的建出虚点,直接设状态。,最小边权和,然后与斯坦纳树同样的转移方式即可。然后是中位数的问题,一个套路的做法是直接二分,比较小的时候,考虑直接。
2024-10-30 08:40:55
1106
原创 CF1981F Turtle and Paths on a Tree 题解
点有点权,你需要把这棵树的边集划分成若干条路径,边不能有交,但点可以有交,每条路径的代价定义为经过的点的点权的。,一组划分方案的代价定义为所有路径的代价之和。号点往子树里延伸了一条链,该子树划分的最小代价。,这玩意很难直接维护,有一个做法是加一维状态。,由于涉及两个儿子中路径的合并,复杂度可能是。更好的做法是分析一下性质,题目中需要求的是。号点往子树里延伸的一条链,钦定链上。没有在点权中出现过,然后直接认为。树上划分路径,朴素的想法是直接设。没有出现过,子树里划分的最小代价。指的是最小的未出现过的。
2024-10-30 08:13:11
807
原创 7.29 模拟赛总结 平面图欧拉定理
7:40 开题开题失败,由于前一天有 cf,模拟赛移到下午了13:45 开题看 T1,题意很抽象,理清后发现:这直接 dj 不就行了?不会错吧不会错吧,看着n1000的数据范围还是不确定,往后看看先看 T2,以为会了,应该就是个斜率什么的,维护凸包+二分看 T3 ,隐隐感觉有点眼熟?但一细想又不会左T4,首先题面比较抽象,但感觉是和以前模拟赛考过的可能有点像,最后看吧决定先写比较确定的 T2,推了推发现斜率不太好搞,不知道那个是不是单调的,没关系我回分数规划只用了O1s。
2024-07-30 21:01:35
737
原创 7.26 模拟赛总结 [计数dp] [数数]
7:40 开题看 T1 发现又是数数?约束似乎比较多,T2 看起来比较可做,T3 应该是什么神奇计数dp,T4 一眼不太可做推 T1,想到 “区间加” 这种操作其实很难在线性 dp 里维护,很多后效性,很快想到了在差分数组上拆成 +1 -1 的操作,然后 dp 状态里记录前缀 ,以为会了,直接开写了发现样例没过,仔细手玩后发现题没看清,操作是有先后顺序的,(1,2)(2,2) 与 (2,2)(1,2) 不是同种方案!以为补个阶乘就行了,发现这样会多算,因为 (2,2)(2,2) 还是只有一种。
2024-07-27 16:49:41
1005
1
原创 7.24 模拟赛总结 [dp 专场] + tarjan
7:40 开题看 T1 ,妈呀,一上来就数数?盯了几分钟后发现会了,不就是 LCS 计数嘛继续看,T2 看上去很恶心,线段覆盖,感觉可能是贪心什么的再看 T3,先想了个n2的式子,再一看哎 max 肯定有决策单调性啊,而且决策还有区间限制,那刚好套个之前模拟赛的技巧,放到线段树上做,秒了?胡完之后看 T4 ,推箱子,感觉是什么神秘不可做题8:05 开始码了,发现 T1 还得套个小容斥,8:20 过样例了接下来决定先写 T3,8:30 先交了个n2,上决策单调性分治到 8:55 调过交了。
2024-07-25 22:03:00
790
原创 珂朵莉树 ODT
容器后,其指代的值仍能访问到 (指针访问) ,但不能再进行任何与 原。的思想维护连续段,再用其它数据结构维护查询操作,以实现正解的复杂度。与该段相交的,由于这样的区间最多只有两个,每次推平最多删两段。上面 三种情况的讨论一种也不能少!否则 RE 套餐送上。意为 “可变的”,方便我们在遍历迭代器时可以直接。所以均摊复杂度正确,不依赖于数据随机生成。完全被包含的,删掉就没了,而总段数是。为什么说它是一个暴力数据结构,观察。正因为是暴力,所以能做的操作十分多。,这是因为如果反过来,操作时,复杂度是严格。
2024-07-24 15:33:59
997
原创 CF / At 记录
先转化:注意到对路径权值的限制较多,尝试放宽限制,容易想到可以转化为 在路径上任选一条边不计贡献,任选一条边。直接 spfa 会 TLE,考虑拓扑排序,有环直接可以,否则是 DAG,可以 dp。,除了那些必须要填的字符以外,剩下的字符只关注数量就行,只需计算。总高度已知,可以得到 奇操作/偶操作 的关系,希望二者尽可能接近。但往右移一点,对后面的贡献会更远。不用写区间赋值,可以直接赋值到后缀,这么显然是正确的。,将图拆成四层,表示两种操作的使用情况,正常最短路。,直接枚举所有子集,计算贡献,预处理之。
2024-07-24 15:32:16
858
原创 7.23模拟赛总结 [数据结构优化dp] + [神奇建图]
然后 不断证明结论+修改一些毫无影响的细节,仍然和大样例不上,最后决定把题面重读一遍,知道看到了 “相对误差”,6,突然想到我学过高中物理。看 T1 ,起初以为和以前某道题有点像,子序列划分,注意到状态数很少,搜出来所有状态然后 dp,然后发现这个 T1 和那个毛关系没有。T4 一眼就不太可做。8:04 码完了,小样例顺利过掉,一测大样例发现小数点后面不对,想了想应该不会是精度问题,可能做法假了。回来看 T1,发现很 sb,每次肯定贪心选最优的后缀,至于选 m 的限制,填满一段后再贪心往前选就行。
2024-07-23 22:37:14
1189
原创 集训 Day 3 总结 虚树 + dfs tree + 基环树
虚树,顾名思义是 只关注原树上的某些,在保留原树祖孙关系的前提下建出的一棵边数、点数大大减少的树适用于优化某些在整棵树上进行dpdfs等操作通常是题目中出现多次询问,每次给出树上的一些关键点,同时保证∑关键点数≤n,很大可能就是建出虚树来处理概括来说,虚树只进行两步操作和。
2024-07-13 10:16:44
1391
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅