Good Bye 2020 题解(A-G)
Good Bye 2020 题解(A-G)
昨天前6题全靠手速,G题漏写了一行代码最后也没有rush出来。😢
A
枚举底边就ok。
B
从后往前greedy,如果+1的话可以让答案+1就+1,不然不变。我一开始还卡了半天在想为啥是对的。。。
C
问题就是要满足:
\[\forall i,s_i\neq s_{i-1},s_i\neq s_{i-2}
\]
直接记录每一个位置是否修改,然后dp就行了。这玩意我做的时间比E还长???!
D
问题可以变为:
\(answer=\sum w_i\times c_i\),\(c_i\)表示和i相连的颜色数量。
然后搞一个priority_queue贪心就可以了。
E
比较基本,就是考虑每一位的贡献。
F
脑子里模拟一下两个位置有1然后插入线性基的过程,然后dsu随便搞搞就过了。注意:一个位置有1的比较特殊。
G
考虑枚举哪些位置是t[i]哪些是s0,这只需要跑几次z就可以了。
然后问题就转变成给你一个t'判断是否可以通过\(s0=\not O\)变化得到。每次奇数位和偶数位拆开来,\(len\log len\)时间复杂度就可以做到。z算法搞的时候一定要注意哪些情况需要翻转,哪些不要,我就是被这个坑了。qwq。
总时间复杂度为\(O(len\times |s_0|+len\times \log len)\)
所有代码连接:
https://codeforces.com/submissions/MrGary/contest/1466