• Problem A

全场最难的题。

首先抛出结论:答案为 d=minsi=1(2min(i1,ni))d=\min\limits_{s_i=\texttt{1}}(2\min(i-1,n-i))

考虑我们操作的意义为在从左往右第 tt 个字符为 1\texttt{1} 时删除从右往左第 tt 个字符。

充分性:最左边和最右边的前 dd 个字符始终为 00

必要性:直接对着取到最小值的那个字符一直操作即可。

时间复杂度 O(n)O(n)

  • Problem B

全场最简单的题。

初始化 ai=0a_i=0,对于每组 (u,v,w)(u,v,w) 使 (u,v)(uw,vw)(u,v)\leftarrow(u|w,v|w),最后检查是否符合条件。

如果一组条件不符合,不难证明与另一些条件矛盾,O(n+m)O(n+m)

  • Problem C

看到大部分数据随机直接乱搞,考虑每个连续段都不会很长,直接不断取 x=x&(x2)x=x\&(\lfloor\frac{x}{2}\rfloor) 再将 popcount(x)\text{popcount}(x) 加入答案即可,O(qlogm)O(q\log m)

  • Problem D

看到输入一个数输出一个数直接乱搞,打表打个几十项喂给整式递推秒切,最后套矩阵快速幂即可,O(C3logn)O(C^3\log n),其中 C=9C=9

  • Problem E

看到恰好分 mm 段直接大胆猜测有凸性和决策单调性,使用 wqs 二分即可,O(nlog2n)O(n\log^2n)

  • Problem F

题意相当于 nlnnn\ln n 对点不能同时被取,点分治后做矩形面积并即可,O(nlog2nlnn)O(n\log^2 n\ln n)

1 条评论

  • @ 2024-1-10 16:36:38

    原来你 F 写的是 3log

    • 1