补题很吃力。

IDDiffDescriptionSolutionCodeReview
AMaster求满足 An≡B(mod264)A^{n} \equiv B \pmod{2^{64}} 的最小非负整数 nn,或报告无解。当 AA 是偶数时,若 n⩾64n \geqslant 64,An=(2A1)n≡0A^{n}=(2A_{1})^{n} \equiv 0,于是只需枚举 n=0,1,…,64n = 0, 1, \dots, 64。当 AA 是奇数时,如果考察 (2A1+1)n(2 A_{1} + 1)^{n} 或 (∑2iAi)n(\sum 2^{i} A_{i})^{n},会产生大量二项式系数,没有很好的性质。考虑从 nn 入手,将 nn 二进制分解,考察每个 A2kA^{2^{k}} 对答案的影响,其中 k⩾1k \geqslant 1。先看 A2k≡1(mod2r)A^{2^{k}} \equiv 1 \pmod {2^{r}},这是说乘上 A2kA^{2^{k}} 对答案的低 rr 位没有影响。条件等价于 ν2(A2k−1)⩾r\nu_{2}(A^{2^{k}} - 1) \geqslant r,记 fk=ν2(A2k−1)=ν2(A−1)+ν2(A+1)+k−1f_{k} = \nu_{2}(A^{2^{k}} - 1) = \nu_2(A-1)+\nu_2(A+1)+k-1。fkf_{k} 递增,因此 nn 中比 kk 高的二进制位,无法再改变 AnA^{n} 中的低 fkf_{k} 位。在确定 nn 的第 kk 位时,就需要保证 AnA^{n} 的低 fk+1f_{k+1} 位与 BB 相同。从低到高位枚举,对于第 kk 位,如果当前 An≢B(mod2fk+1)A^{n} \not\equiv B\pmod{2^{f_{k+1}}},更新 n←n+2kn\leftarrow n+2^k。AC
CMedium序列 AA 和排列 BB,求 AA 最多能选出多少个互不重叠的子序列,使得每个子序列均等于 BB。f(i,j)f(i,j):考虑序列 A[0,i)A[0, i) 前 ii 个字符,已经匹配 B[0,j)B[0, j)、等待继续往后匹配的子序列数量,转移只需要 f[pos[x] - 1]--; f[pos[x]]++;。O(∣A∣+∣B∣)\mathcal{O}(\vert A \vert + \vert B \vert)。AC
EExpert带颜色的树。求集合对 (S,T)(S, T),满足 SS 和 TT 皆纯色,且 hull⁡(S)\operatorname{hull}(S) 与 hull⁡(T)\operatorname{hull}(T) 不交。定义 Se\mathcal S_e 为 (S,T)(S, T) 的集合,满足删除边 ee 后 SS 和 TT 分别位于两个连通块中,换言之,连接 hull⁡(S)\operatorname{hull}(S) 与 hull⁡(T)\operatorname{hull}(T) 的路径包含边 ee。欲求 ∣⋃eSe∣=∑e∣Se∣−∑u∑euf∣Se∩Sf∣\vert \bigcup_{e}\mathcal S_e \vert =\sum_{e} \vert \mathcal S_e \vert -\sum_u\sum_{euf} \vert \mathcal S_e\cap\mathcal S_f \vert。用 DSU on tree 求得点集 UU 中非空纯色集合的数量 A(U)=∑c(2#c−1)A(U)=\sum_c(2^{\#c}-1)。对边 ee,设删除它后得到两个连通块 UeU_e 和 VeV_e,则 ∣Se∣=A(Ue)A(Ve)\vert \mathcal S_e \vert =A(U_e)A(V_e)。对相邻两条边 e,fe, f,设公共点 uu,设删除 uu 后得到若干连通块 BiB_i,则 ∑euf∣Se∩Sf∣=∑i<jA(Bi)A(Bj)\sum_{euf} \vert \mathcal S_e\cap\mathcal S_f \vert = \sum_{i<j}A(B_i)A(B_j)。O(Nlog⁡N)\mathcal{O}(N\log N)。AC
FHard构造序列 xx,满足 Li≤xi≤RiL_i \le x_i \le R_i。将序列 xx 划分为若干个连续段 bb,使得每一段内的元素均相等,且相邻两段的元素不相等。最小化 ∑∣bj∣2\sum \vert b_j \vert^2。(1) f(i,x,l)f(i, x, l):第 ii 个数填 xx,已经有相同 ll 个数的最小代价。
(2) 对固定的 ii,至多保留三个互不相同 xx。原因是转移只关心 x≠yx \neq y,而一个位置只有左右两个邻居,三个不同的候选值中,总能找到一个与左右邻居都不同的值。
(3) 对固定的 i,xi, x,至多保留最小的两个 ll。这是考虑到若 l=sl=s 可行且 l=s+2l= s+2 也可行,可以把长度 l=s+2l= s+2 的最后一段拆成三段 1,1,s1, 1, s,仍合法,且代价更小。
(4) 总状态数 O(N)\mathcal{O}(N),转移 O(1)\mathcal{O}(1),总复杂度 O(N)\mathcal{O}(N)。
AC
KHard有 2N2N 张牌,数字 11 到 NN 各两张,两人初始各持 NN 张。两人轮流将一张手牌置于牌堆顶。若牌堆中出现两张数字相同的牌,出牌者得 11 分,并将这两张牌及其之间的所有牌移除。给定 Alice 的 NN 次出牌序列 AA。求 Bob 采取最优策略时,Alice 的最小得分。略。AC
LMedium排列 AA,定义 AN+i=min⁡{A2i,A2i−1}A_{N+i}=\min \lbrace A_{2i}, A_{2i-1} \rbrace。QQ 次操作:交换 AXA_X 与 AYA_Y;求 ∑i=LRAN+i\sum_{i=L}^{R} A_{N+i}。修改 AiA_{i} 只会影响 O(log⁡N)\mathcal{O}(\log N) 个位置。单点修改,区间求和,O(Qlog⁡2N)\mathcal{O}(Q\log^{2}N)。AC