解题思路
两件货能免检,当且仅当 (wi+wj) 是 t 的倍数。只由余数决定:记 ri=wimodt,则要 ri+rj≡0(modt)。
- 用长度为 t 的数组统计每个余数出现次数 cnt[r]。
- 余数 0 只能和余数 0 配对,方案数为 C(cnt[0],2)。
- 若 t 为偶数,余数 t/2 只能和自己配对,方案数为 C(cnt[t/2],2)。
- 其余余数 r 只能和 t−r 配对,方案数为 cnt[r]×cnt[t−r]。枚举时只走 r<t−r,避免算重。
- n 最大为 100000,答案可能到 C(n,2),用 64 位整数。