复健
重度拖延症患者来了。
哇过了一年终于打赢复活赛!我回来打算法竞赛了(耶!)
我来想想要干嘛,先复习点算法吧。
感觉XCPC和OI出题风格很不一样啊?我说XCPC有点像板子大战有懂的吗()对我这种选手很不友好啊/kk
DP
怎么XCPC这么喜欢神秘DP优化
WQS二分
需要一个凸函数(通过感受来进行猜测,一般不严格证明)
二分一个斜率值来截这个函数。呃呃总之就是那么做啦!
求的一般是,恰好那个值的答案。
DS
树状数组 已复习 一般支持单点改和前缀和查询。信息需要无序且可合并
线段树
好吧感觉还是值得细说一下的。
维护的信息需要是满足结合律且封闭的(就是,额,大概就是说合并的时候通过已经维护的信息可以推出合并后的信息?某种意义上就是能通过矩阵转移吧)
所以某种意义上来说,线段树和矩阵关联度还挺高(?)我以前似乎很多题都是直接拿矩阵写的啊,尤其是历史和(懒得分析转移导致的),然后被卡常
标记永久化 感觉不太常见,而且也不是很难推(大概吧)
可持久化
哦感觉很多东西都可以持久化啊,只要复杂度是对的。比如主席树就是对单点修改持久化,SAM的某种应用(你的名字)似乎是对线段树合并持久化。
树套树
这真是新学了,以前貌似不会这个。(也可能会但是我忘了)
哦好像就是和名字一样啊。
吉司机线段树
标志是chkmax/chkmin,记录最小(大)/次小(大),通过势能分析证明复杂度正确(每次向下递归会造成某个节点上的不同值数减少)
猫树分治
P6240 CF1100F 练习题,记得写。
静态序列,快速查询。
kdt
以一种神奇办法整出来的树。复杂度也很神奇。
图论
最小生成树相关 已复习 回头看点B算法的题
网络流 已复习 回头练下题
哎怀疑自己真的是个怪人,怎么暑假完全提不起劲(如同一滩濒死的史莱姆一样瘫在床上玩手机),一开学就非常有写代码的动力…………()
然后只能军训忙里偷闲了qwq
网络赛会赢吗?会赢的。
而且我可能真的低估了自己以前会的东西的量😭呃呃呃我以前为啥不写总结啊?
好的网络赛也是成功坠机了😭
划艇
来看我曾经非常喜欢的dp题了!
这个数据范围肯定是要离散化的,而不离散化的dp非常显而易见。
注意到转移可以分为两类,两个不同段之间的转移和同段转移。
不同段转移是简单的,同段转移使得这个问题有点复杂。
只考虑内部转移。通过观察(bushi)可以发现是一个形如组合数的形式。
设 \(dp_{i, j}\) 表示在 \(i\) 时刻 \(j\) 处的dp值(j是离散化后的结果)
不同段转移的时候需要把后面时间的值提前处理好。
哎我说了个啥?多年之后仍然学不会中文qwq
还是看点icpc题吧
SWERC 2025
A题暑假看的,回头再写做法吧。
B
先排序
observation1:忽略不选,选大于和选小于一定是连续段,形如 >>>><<<<
observation2:应该是把两头占满,形如>>>>000000<<<<,因为两头限制是最弱的。
observation3:注意到任意选取两个点(分取一大一小),其代价和一定是定值,为他俩的差
那么直接同时两头扫,两两配对。如果有一个右边的点>r或者左边的点<l,那么就可以把剩下的点全部填>或者<
哦我做这题做得有点麻烦了,注意到3是不是就做完了。
C
简单题。感觉难度在于读懂题。
n是偶数的情况是显然的。奇数的情况,若两个序列前m/2等于另一个后m/2,连边,可以发现最后会连成一个环,穿插填入即可。
等下这个数据范围认真的?
D
签。数据范围何意味?
G
神秘构造。感觉可行的解是很多的。然而,我怎么一个想不到。
其实想到了要分块和跨块倒着填,然而没想到把这两者合起来……
L
一开始想了个SAM,再一细想想发现了一个简单很多而且很快的离线做法。
从前往后扫。
维护,每一个字符往后的下一字符相同的最远距离(就是,因为相当于r一定时,最小的l满足[l,r]中这个字符后面的东西都一样),以及这个字符是什么。
复杂度 \(O((n+q)\left | \sum \right | )\)
按着以前的做题记录写题。只有这种时候我才会惊觉自己曾经走过了多远的路。
有可能在比赛前复健到全盛时期的水平吗?不知道。但似乎只有这样才有可能赢啊。
The 2026 ICPC Asia East Continent Online Contest (I) J
因为一些原因来订这个题。写了bitset做法,跑得真快吧。
你是说有人用 int 读入 10^18 的数然后调了一下午吗?是谁呢?
Souvenirs
日常被自己唐哭
这题做法还挺多,为什么我一个都没想到(??)其实想到了莫队,然而认为过不去/dk
他这个离线做法就是暴力跳暴力更新啊,发现每次差必然得/2就做完了。
我错了,线段树二分常数真的好大
The 2025 ICPC Asia Xi'an Regional Contest
随便做一做。这场A很简单啊?怎么过的这么少()我的做法似乎和题解不太一样,然而懒得写了(反正用平衡树简单维护一下就做完了)。
K Killing Bits
观察到,\(b_i\) 的位是必然要被保留的。可以考虑先整出一个可行的操作排列(就是,不一定要变成B,但是那些一定要保留的位还是得保留)
然后发现后面的操作只需要每一次把操作排列当前的值和 \(b_i\) 交换一下,这样操作一定是可行的,所以只需要考虑第一次能不能整出来。
有啥子以为是,Hall定理……完全是想麻烦了啊!
建图跑网络流。
实在是做不下去ICPC题了,还是去看点OI题缓缓吧
csp-s26 t3
细节有点多的dp(也可能是我比较唐)
注意到从u开始每一次跳能跳到的最远点一定是一种最短路径,可以在这个基础上dp。
除了起点和终点以外的点称为途径点。
恰好两条路径的点满足什么条件?通过观察可以发现在最初的最短路基础上,有且仅有一个途径点可以被有且仅有一个比它小的点替代,并且,替代之后,它前面的途径点(如果有的话)不能被其后面的点替代。
然后dp一下即可。

浙公网安备 33010602011771号