把所有相同取值聚合。设 U=max(ai),定义频次数组 cnt[x] 表示值为 x 的元素个数。则
S=∑y=1Ucnt[y]⋅H(y),
H(y)=∑x=1Ucnt[x] ⋅⌊yx⌋.
对固定的 y,当 x∈[ky,(k+1)y−1] 时有 ⌊yx⌋=k。因此可以把 [1,U] 按长度为 y 的区间分块:
给定n个元素ai,要求计算以下表达式的值:
S=∑1≤i≤n∑1≤j≤n⌊ajai⌋
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册