码迷,mamicode.com
首页 > 其他好文 > 详细

「考试」省选63

时间:2020-04-05 20:16:34      阅读:59      评论:0      收藏:0      [点我收藏+]

标签:class   line   splay   最大的   维护   limit   答案   lin   博弈   

这场好郁闷啊。
T1,T3太简单,T2太难。。

T1
\(dy\)讲的原题。
直接用容斥来做。
只需要求出三个二位偏序即可。

T2
比较帅的\(LCT+PAM\)
我们考虑过程中出现的所有的回文串。
其实是两个最大的被原串包含着的回文串所代表节点路径上的\(cnt*len\)的和。
这样我们用一个\(LCT\)来解决。
建处正反两个\(PAM\),然后我们发现\(LCT\)的节点上的所有的节点的值都可以由\(len\)来控制。
如果是还没有出现的节点,我们让他的\(len\)为0即可。
然后不断地加入点,操作某一个点到根的路径上\(cnt+1\),这样就可以了。
查询的时候用一个倍增,找到最相近的那个回文串的代表节点,然后求\(LCA\)\(LCT\)维护答案即可。
发现有时候\(LCA\)不做贡献。
就是说奇偶性上发生了问题,如果我们更靠前的串已经是相同的话,我们就没有必要再走到\(LCA\)的位置,减去其贡献即可。

T3
阶梯\(NIM\)博弈的模板。
我们把节点的权值改成:

\[w_x=a_x-\sum\limits_{c\inch(x)}a_cb_c \]

然后发现从一个地方拿掉权值相当于在其父亲上加上权值。
于是乎相当于是一个阶梯\(NIM\)博弈。
那么对所有奇数层的节点的权值求一个\(xor\)和即可。
注意特判\(b=0\)的情况为新树。

「考试」省选63

标签:class   line   splay   最大的   维护   limit   答案   lin   博弈   

原文地址:https://www.cnblogs.com/Lrefrain/p/12638545.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!