赛时指赛时我过了这题或者嘴巴掉了,赛后指赛后补了或者嘴巴了。
第一场
B 星星(赛时)
就直接暴力 DP。
F 序列立方(赛时)
考虑立方的组合意义,即任意选三个子序列,使得它们相等的方案数。
dpi,j,kdp_{i, j, k}dpi,j,k 表示三个子序列末尾分别在 i,j,ki, j, ki,j,k 的方案数,这样不好转移,改成三个指针,每次选一个指针向后移一格或选择这三个指针上的数插到子序列末尾,为了避免数重钦定先移好第一个再移好第二个再移第三个即可。
D 传送(赛时)
线段树分治然后用并查集维护,每次相当于是要给一个集合加上某个权值。
给每个点打个 tag,令一个点的权值为其到根的所有祖先的 tag 之和。
设是把 xxx 合并到 yyy,若要给 xxx 子树加上 vvv,则 tagx←tagx+vtag_x \gets tag_x + vtagx←tagx+v。若要给 yyy 子树加上 vvv,则 tagy←tagy+v,tagx←tagx−vtag_y \gets tag_y + v, tag_x \gets tag_x - vtagy←tagy...