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
posted @ 2020-12-31 10:37  WWW~~~  阅读(193)  评论(0编辑  收藏  举报