- 博客(70)
- 收藏
- 关注
原创 多项式全家桶
用 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
771
原创 NOI 2022 攻略
从分数线上来看是比较困难的一年 NOI 了,十分考验选手的实力和心态先不考虑 333 操作查询,怎么维护序列呢?末尾加,删;合并两个序列,容易让人想到链表,这些操作链表都可以处理接下来考虑怎么查询,我们直接对每个序列维护一棵值域线段树,如果是查一个序列的绝对众数的话,可以在线段树上二分,每次比较左右儿子的数字个数,递归到大的那一边,由绝对众数的定义这样最终肯定是能找到的对于查多个序列,我们把每次询问的 mmm 棵值域线段树的根拿出来,计算所有左儿子以及所有右儿子的和,然后一起往左或者右儿子走就行了因为是值域
2025-03-27 16:00:56
317
原创 THUWC 2025 游记
六点半的高铁,五点半就起,困飞高铁上睡眠十分不好,蚌醒来之后看了几集末日三问,呜呜太好看了中午到了全季酒店,吃完饭休息了一会就去报道了然后排队排了Onns后终于拿到了报到证,还送了清华的一些纪念品,感觉很牛接下来试机,刚开始由于键盘过于逆天,表现为键盘上space回弹过慢,敲一下出来一堆空格,赶紧申请换了屋里很热!!vscode上/下移行vscode 内打开终端删除整行,好像默认是一定要调成backspace!!然后登录了 OJ,注意事项里交代了正赛是pretest。
2025-01-16 21:04:27
594
原创 NOI Linux 使用小技巧
显示当前所在位置的所有子目录;的话需要在终端界面 手动输入;,在当前目录下生成一个名字为。运行这个文件,如果没有。一般来说后两个结合着看就行。
2025-01-06 15:32:03
289
原创 11.21 小清新图论专场训练
从边的角度分析:边要么是连接不同字符,这样的边反复横跳是没意义的;还有一种套路:边数很多的时候(比如完全图),通常可以分析出来许多边是没用的,只保留那些较优的边,再跑最小生成树算法。种元素构出的最大长度就是 不同的二元组个数,不是最大长度的话显然删掉序列末尾一定不会变得不合法。的边,可以通过反复横跳来修正中间括号匹配的限制,那么唯一的限制就是。的一条边,二元组需要全部出现,就是边要全部经过,由此想到欧拉路径。再考虑路径:简单的情况是不经过第二类边,那么路径上一定是。的,每次询问的时候现做即可,复杂度。
2024-11-21 21:31:10
1108
原创 P7450 [THUSCH2017] 巧克力 题解
虽然与斯坦纳树的模板不太相同,但我们稍微转化一下:考虑对每种颜色新开一个虚点,把这个虚点与所有该颜色的点连边,边权为。枚举所有可能的颜色情况,接下来的问题转化成:有 一些点,一些边,求一棵最小生成树,使得每种颜色都出现过至少一次。里,首先这样不会让最终答案更优,不至于不合法;的转移 ) ,得跑 spfa,但不知道为什么我写了个 DJ 跑过了。实际实现时,我们没必要真的建出虚点,直接设状态。,最小边权和,然后与斯坦纳树同样的转移方式即可。然后是中位数的问题,一个套路的做法是直接二分,比较小的时候,考虑直接。
2024-10-30 08:40:55
1045
原创 CF1981F Turtle and Paths on a Tree 题解
点有点权,你需要把这棵树的边集划分成若干条路径,边不能有交,但点可以有交,每条路径的代价定义为经过的点的点权的。,一组划分方案的代价定义为所有路径的代价之和。号点往子树里延伸了一条链,该子树划分的最小代价。,这玩意很难直接维护,有一个做法是加一维状态。,由于涉及两个儿子中路径的合并,复杂度可能是。更好的做法是分析一下性质,题目中需要求的是。号点往子树里延伸的一条链,钦定链上。没有在点权中出现过,然后直接认为。树上划分路径,朴素的想法是直接设。没有出现过,子树里划分的最小代价。指的是最小的未出现过的。
2024-10-30 08:13:11
721
原创 7.29 模拟赛总结 平面图欧拉定理
7:40 开题开题失败,由于前一天有 cf,模拟赛移到下午了13:45 开题看 T1,题意很抽象,理清后发现:这直接 dj 不就行了?不会错吧不会错吧,看着n1000的数据范围还是不确定,往后看看先看 T2,以为会了,应该就是个斜率什么的,维护凸包+二分看 T3 ,隐隐感觉有点眼熟?但一细想又不会左T4,首先题面比较抽象,但感觉是和以前模拟赛考过的可能有点像,最后看吧决定先写比较确定的 T2,推了推发现斜率不太好搞,不知道那个是不是单调的,没关系我回分数规划只用了O1s。
2024-07-30 21:01:35
679
原创 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
929
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
736
原创 珂朵莉树 ODT
容器后,其指代的值仍能访问到 (指针访问) ,但不能再进行任何与 原。的思想维护连续段,再用其它数据结构维护查询操作,以实现正解的复杂度。与该段相交的,由于这样的区间最多只有两个,每次推平最多删两段。上面 三种情况的讨论一种也不能少!否则 RE 套餐送上。意为 “可变的”,方便我们在遍历迭代器时可以直接。所以均摊复杂度正确,不依赖于数据随机生成。完全被包含的,删掉就没了,而总段数是。为什么说它是一个暴力数据结构,观察。正因为是暴力,所以能做的操作十分多。,这是因为如果反过来,操作时,复杂度是严格。
2024-07-24 15:33:59
921
原创 CF / At 记录
先转化:注意到对路径权值的限制较多,尝试放宽限制,容易想到可以转化为 在路径上任选一条边不计贡献,任选一条边。直接 spfa 会 TLE,考虑拓扑排序,有环直接可以,否则是 DAG,可以 dp。,除了那些必须要填的字符以外,剩下的字符只关注数量就行,只需计算。总高度已知,可以得到 奇操作/偶操作 的关系,希望二者尽可能接近。但往右移一点,对后面的贡献会更远。不用写区间赋值,可以直接赋值到后缀,这么显然是正确的。,将图拆成四层,表示两种操作的使用情况,正常最短路。,直接枚举所有子集,计算贡献,预处理之。
2024-07-24 15:32:16
815
原创 7.23模拟赛总结 [数据结构优化dp] + [神奇建图]
然后 不断证明结论+修改一些毫无影响的细节,仍然和大样例不上,最后决定把题面重读一遍,知道看到了 “相对误差”,6,突然想到我学过高中物理。看 T1 ,起初以为和以前某道题有点像,子序列划分,注意到状态数很少,搜出来所有状态然后 dp,然后发现这个 T1 和那个毛关系没有。T4 一眼就不太可做。8:04 码完了,小样例顺利过掉,一测大样例发现小数点后面不对,想了想应该不会是精度问题,可能做法假了。回来看 T1,发现很 sb,每次肯定贪心选最优的后缀,至于选 m 的限制,填满一段后再贪心往前选就行。
2024-07-23 22:37:14
1100
原创 集训 Day 3 总结 虚树 + dfs tree + 基环树
虚树,顾名思义是 只关注原树上的某些,在保留原树祖孙关系的前提下建出的一棵边数、点数大大减少的树适用于优化某些在整棵树上进行dpdfs等操作通常是题目中出现多次询问,每次给出树上的一些关键点,同时保证∑关键点数≤n,很大可能就是建出虚树来处理概括来说,虚树只进行两步操作和。
2024-07-13 10:16:44
1201
原创 网络流总结
从 EK 的实现上我们可以看出,每次执行整张图的 BFS ,却只对其中一条路径增广,效率很低。基于上面的讨论,我们求解最大流的方法就是在残留网络上不断寻找增广路后进行增广。为了避免出现增广过程中 交叉、流量重复增加的情况,首先对 整张图进行。这本质上是一种贪心的做法,由于反向边的存在,我们在进行一次。增大流量,因此最大流的求解就可以看作找增广路增广的过程。对于每条现存的增广路,我们都可以沿增广路从源点。上存在一条增广路,我们就可以沿增广路从。不是很懂,大概就是多条增广路的并。,在点集中存在两个特殊的点。
2024-04-26 21:34:04
1529
原创 [DP] [技巧] [性质] 模拟赛好题分享
影响的是从操作点开始向下的一个 “阶梯型” 的结构。是可以边做边维护的,那么复杂度就是状态数,即。中任意一个转来,但不再减去重叠部分,取。,为避免对后面状态的影响,从右往左枚举列。过来,但重叠部分多算了,所以考虑减去。的怪,直接单点打就 ok 啦,状态数。行上方进行单点操作的代价,转移过来。发现性质:对于同一列上,操作。覆盖到的点太多,当然是不如。显然最多进行一次,否则不优。那这个临界是多少呢?那么考虑以列为阶段进行。下面继续思考:如果操作。也就是说,对于高度大于。列式子,设阶梯的高为。
2023-11-14 16:48:37
89
原创 [概率][计数dp] 模拟赛好题分享
首先我们做一步小小的变形,观察到式子中两个组合数从意义上来说是可以交换的,考虑将 DP 状态中都为。可以发现一个性质:DP 的过程中一定要时时维护串串合法,因为补充的串和为。时,经过一次 “分裂” 可以变为 三个数,接下来在三个数中。发现,问题递归了,分裂出来的三个数在接下来的选择中 完全独立!我们发现,合法与否仅与前缀有关,考虑 DP 中只维护前缀。,一个合法串的充要条件是:任何一个前缀都大于等于。的方案数,也就是 每步乘上的 “权值”总方案数好求,只需要求合法的方案。无关,可以提前处理,令。
2023-11-12 16:36:39
79
原创 [线性规划] [性质] 模拟赛好题分享
对于操作,发现 “相邻” 这个字眼貌似是要考虑顺序,但细想:一个字符串中只要有。从题目中给出的 “相似” 定义,我们发现实际上要求的是。范围扩大,如上图求出的实际上是 黑色斜线直接的区域。尽可能的把答案取到右上边界的位置,发现要么有。横平竖直的图形,用线性规划解决,对于一个串。看做平面中的点 的技巧,这里我们也这么做。是一个这样的图形,那么我们的目的是找一个。所以直接求二者的交集,看是否为空来判断即可。观察到 最大的最小,考虑二分。的数目相同,而不管排列顺序。,就必然至少有一个位置的。
2023-11-09 18:53:49
82
1
原创 [性质] 模拟赛好题分享
其次要考虑转化为单点贡献,反着求,考虑一个点在怎样的子段中可以不被排序。发现:左侧的数都小于等于它,右侧都大于等于它。首先操作区间一定不交。
2023-11-09 17:27:59
61
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人