「Log」2023.9.12 小记
序幕
早上状态良好,昨天睡得好。好好好。
\(\text{6:40}\):到校,整理博客,看看学点啥。
还是先学一会数论吧,然后就去写平衡树。
\(\text{7:50}\):博客写了一些,欧拉定理的部分先放一放,打算写个莫反(平衡树等会写)。
\(\text{8:12}\):式子推完了,是简单的,跟题解思路差不多,开打代码。
\(\text{8:30}\):切掉,好耶!
\(\color{blueviolet}{P2257\ YY的GCD}\)
简单莫反,考虑枚举质数,然后推出式子后设 \(T=pd\),再次化简后可得到能预处理的一坨,就这样。
\(\text{Link}\)
间幕 \(1\)
看了一会一道 AC 自动机的题,吃了个面包准备去写平衡树。
\(\text{8:50}\):开打!
\(\text{9:30}\):切掉,好耶!肉眼可见的码力上升。
打完之后 MLE 了,还好 Zpair 提醒我要用垃圾桶这种科技(以前不会)。
\(\color{blueviolet}{P2042\ [NOI2005]\ 维护数列}\)
序列平衡树维护最大字段和(必须选择至少一个),注意 \(0\) 节点的影响即可,细节较多。
似乎没调很长时间,就 push_up()
中有个 l
、r
打反了,用了垃圾桶优化就切掉了。
\(\text{Link}\)
间幕 \(2\)
中午复习了一下 SAM 就去吃饭了,吃拉面。
在校随机游走的时候找不到同学,就回机房了。
Zpair 的牛肉面坏掉了,iazm 帮助他打电话退款。iazm 太伟大。
吃完饭后看看书。
\(\text{13:50}\):看书看差不多了,开始做题,来点 SAM。
\(\text{12:50}\):好好好多打了个等号,切了切了。
\(\color{blueviolet}{P5341\ [TJOI2019]\ 甲苯先生和大中锋的字符串}\)
考虑所有 \(\mathrm{endpos}\) 集合大小等于 \(k\) 的状态 \(p\),其影响的是 \(\mathrm{len}(\mathrm{link}(p))+1\) 到 \(\mathrm{len}(p)\) 这些长度的子串,于是变成了区间加,最后一次查询,考虑差分数组处理即可。
用上了优化排序,省去了建 Parent 树的过程。
\(\text{Link}\)
间幕 \(3\)
\(\text{15:40}\):接着写 SAM 题。
\(\text{15:47}\):切掉,逐渐理解 SAM。
\(\color{blueviolet}{P4070\ [SDOI2016]\ 生成魔咒}\)
考虑每次加入一个字符的贡献就是 \(\mathrm{len}(p)-\mathrm{len}(\mathrm{link}(p))\),就结束了,还是很好想的,当成 SAM 板子打的。
\(\text{Link}\)
\(\color{blueviolet}{SP8222\ NSUBSTR\ -\ Substrings}\)
首先一个等价类会影响其所包含子串的出现次数,考虑一个串出现 \(x\) 次,那么其子串一定出现至少 \(x\) 次,把区间取 \(\max\) 转换为前缀取 \(\max\)。
\(\text{Link}\)
\(\color{blueviolet}{SP1811\ LCS\ -\ Longest\ Common\ Substring}\)
第二个串在第一个串的 SAM 上匹配即可。
\(\text{Link}\)
间幕 \(4\)
吃饭,吃完饭打块。
胜利的。
6bit 讲简单数论,简单的(大概)。
交了一堆以前写过的题。
回家效率极低,进行了一些思索后开始写网络流。
\(\color{blueviolet}{P3749\ [六省联考 2017]\ 寿司餐厅}\)
最大权闭合子图,并不难想,稍微变形即可。
\(\text{Link}\)
尾声
昏迷。