杂题

题意

给定\(n\)个元素的序列\(\{a_i\}\)\(m\)个元素的序列\(\{b_i\}\),以及\(L\),求:
\(\sum\limits_{i=1}^n\sum\limits_{j=1}^m\sum\limits_{k=1}^L\lceil\frac{a_i+b_j}{k}\rceil\)
\(n,m\le 1000\)
\(a_i、b_i\in[1,10^9]\)
\(L\in[1,2\times 10^9]\)

做法

\(B\ge \sqrt{a_i+b_j}\)

\[\begin{aligned}&\sum\limits_{i=1}^n\sum\limits_{j=1}^m\sum\limits_{k=1}^L\lceil\frac{a_i+b_j}{k}\rceil\\ =&\sum\limits_{i=1}^n\sum\limits_{j=1}^m\sum\limits_{l=1}^{\infty}\sum\limits_{k=1}^L[\lceil\frac{a_i+b_j}{k}\rceil\ge l]\\ =&\sum\limits_{i=1}^n\sum\limits_{j=1}^m\{(\sum\limits_{l=1}^{B}\sum\limits_{k=1}^L[\lceil\frac{a_i+b_j}{k}\rceil\ge l])+\sum\limits_{k=1}^L\max(\lceil\frac{a_i+b_j}{k}\rceil-B,0)\}\\ =&\sum\limits_{i=1}^n\sum\limits_{j=1}^m\{\sum\limits_{l=1}^{B}\min(\lfloor\frac{a_i+b_j-1}{l-1}\rfloor,L)+\sum\limits_{k=1}^L\max(\lceil\frac{a_i+b_j}{k}\rceil-B,0)\}\\ =&\sum\limits_{i=1}^n\sum\limits_{j=1}^m\{\sum\limits_{l=1}^{B}\min(\lfloor\frac{a_i+b_j-1}{l-1}\rfloor,L)+\sum\limits_{k=1}^B\max(\lceil\frac{a_i+b_j}{k}\rceil-B,0)\}\\ =&\sum\limits_{i=1}^n\sum\limits_{j=1}^m\{\sum\limits_{l=1}^{B}\min(\lfloor\frac{a_i+b_j-1}{l-1}\rfloor,L)+\sum\limits_{k=1}^B\max(\lceil\frac{a_i+b_j}{k}\rceil,B)-B\}\\ =&\sum\limits_{l=1}^{B}\sum\limits_{i=1}^n\sum\limits_{j=1}^m\min(\lfloor\frac{a_i+b_j-1}{l-1}\rfloor,L)+\sum\limits_{k=1}^B\sum\limits_{i=1}^n\sum\limits_{j=1}^m\max(\lceil\frac{a_i+b_j}{k}\rceil,B)-B\\ \end{aligned}\]

两部分处理类似,
例如第一部分,对\(\{a_i\},\{b_i\}\)排序,枚举\(l\),扫描\(i\),这时\(j\)可以分为前后两部分从而去掉\(\min\)\(\lfloor\frac{x+y}{l}\rfloor=\lfloor\frac{x}{l}\rfloor+\lfloor\frac{y}{l}\rfloor+[x\mod l+y\mod l\ge l]\),布尔表达式用树状数组处理。

复杂度\(O(nB\log B)\)

posted @ 2023-07-30 15:46  Grice  阅读(26)  评论(0编辑  收藏  举报