P12624 [ICPC 2025 NAC] Humans vs AI

给定两个序列 \(a,b\),满足 \(\forall i,a_i \times b_i=0\) ,以及常数 \(k\),对满足以下条件的非空连续段计数:

\[\max b_i + \sum a_i \le k((\sum b_i) - \max b_i) \]

\(n \le 2\times10^5\)


推柿子,变成

\[(1+k)\max b_i + \le k\sum b_i - \sum a_i \]

\(\max b_i\) 分治,令 \(\Delta=(1+k)\max b_i\)

同时令 \(c_i=kb_i-a_i\)

原式变为

\[\Delta \le \sum c_i \]

考虑进行启发式分治,枚举小的一边,不妨考虑枚举左端点 \(l\) 时的情况。

\[s_r \ge \Delta + s_{l-1} \]

发现这是简单二维数点。做完!

posted @ 2025-09-01 20:00  CuteNess  阅读(8)  评论(0)    收藏  举报