T3 统计 解题报告

T3 统计 解题报告

孩子们这是区题

首先,参考字符串哈希,给1~m的用双哈希赋权,假设的权值为 \(h_i\)

\(X =\sum h_i\)

然后维护一下原数组的前缀和(每个数要替换成他的权值)

然后想一下一个区间 \([j+1,i]\) 是合法区间的充要条件

\(i \sim j\)\(m\) 的倍数,\(\sum_{k=j}^i h_k\)\(X\) 的倍数

第二个用前缀和做,然后你得到了一个 \(O(n^2)\) 的做法

接下来做优化

设 s 是前缀和数组,条件可以变成

\[s_i - s_j = k·X 且 km = i - j\\ s_i - s_j = \frac{i - j}{m}·X\\ \frac{s_i - s_j}{i - j} = \frac{X}{m}\\ 右边是一个常量,令其为 T\\ \frac{s_i - s_j}{i-j}= T\\ s_i - iT = s_j - jT 且 i - j 是 m 的倍数 \]

接下来对下标 %m 的余数做分组用桶维护就行

posted @ 2026-08-08 10:16  kingho_zjh  阅读(15)  评论(0)    收藏  举报