2024 百度之星初赛第三场
debuff 叠满了
T1423 过的很顺利
T5 一看就是枚举断边统计答案,树形 DP 预处理一下。很久没写换根了,用了 22min。没开 LL
WA 了一发
T7 看数据范围就是分块,15min 过了
剩下 1h50min
T6 一开始想魔改 kmp,但匹配段长度不一就很难办,还要求最长的,寄
T8 感觉很典,但想不起来。以为离线之后把询问放到线段树叶子上,模拟一遍,区间 +,ckmax,ckmin 就完了,写一半发现 ckmin 是对一个常数组对位做,幸好先写的是主函数而不是线段树。本来 ckmin 就不太会,寄
回头做 T6。发现本质是匹配子序列,而且可以贪心地匹配最前面的,手动调整最后一个即可。大概封榜时才开始写,之前写过哈希而且没有 ACAM 板子就写了个 \(O(n\sqrt n)\) 的哈希表套 vector
查找子串,第一次交又 WA 又 MLE,才发现 256M。知道到点了,没拍。修了一些例如 + 不能合并的的 bug,赛后想起来忘记手动调整最后一个了
这次没有数数题卡我了,但还是打得很差。随缘写/交,毫无纪律性
小度修车
称 \(t\) 的极长字母子串为“段”
\(t\) 与 \(s\) 的匹配本质是 \(t\) 的段 与 \(s\) 子串构成的子序列 的匹配。要求最长的匹配,只需要贪心地令每一段匹配最前面的子串(最后一段匹配最后面的)
剩下的问题是对于每一段,求在 \(s\) 中上一个匹配子串之后的最前面的出现位置,没有出现就无解。暴力扫哈希判断即可
注意特判 \(t\) 只有一段的情况