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 的余数做分组用桶维护就行

浙公网安备 33010602011771号