1 条题解

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

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

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

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

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

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

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

    信息

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