1 条题解

  • 0
    @ 2024-6-4 16:07:05

    为了好写,显然将询问差分成 (1,1),(x,y)(1,1),(x,y)

    考虑连续段数量的另一种刻画:1+i=2n[aiai1]1+\sum^n_{i=2}[a_i\neq a_{i-1}]。所以转而对每两列之间考虑有几行使得相邻不同。

    即对 jjj1j-1 列之间计数有多少个 ii 满足 [ji][(j1)i][j|i]\neq[(j-1)|i]。推简单二维容斥式子得到当 iVi\le V 时答案为 $\lfloor\frac{V}{j}\rfloor+\lfloor\frac{V}{j-1}\rfloor-\lfloor\frac{V}{\text{lcm}(j,j-1)}\rfloor$。lcm(j,j1)\text{lcm}(j,j-1) 显然为 j(j1)j(j-1)

    考虑前一半,显然只要求 i=1VVi\sum^V_{i=1}\lfloor\frac{V}{i}\rfloor。整除分块求之。具体地,当 iVi\le\sqrt V 时枚举 ii,当 i>Vi>\sqrt V 时枚举 Vi\lfloor\frac{V}{i}\rfloor,即可做到 O(V)O(\sqrt V) 复杂度。

    考虑后一半,Vj(j1)\lfloor\frac{V}{j(j-1)}\rfloor。当 j(j1)>Vj(j-1)>V 时该式子值为 00,当值非零时 jmaxVj_{\max}\approx\sqrt V,所以复杂度仍然是 O(V)O(\sqrt V)

    总时间复杂度 O(TV)O(T\sqrt V),常数小的离谱。

    信息

    ID
    946
    时间
    1000~4000ms
    内存
    256MiB
    难度
    4
    标签
    (无)
    递交数
    3
    已通过
    2
    上传者