子集合加总问题

给出 $\{a_{1\dots n}\}$,找出一个子集和为 $0$。

这是 NPC 的,当 $|a_i| \leq n$ 的时候可以 $n^3$ 背包,当然地可以使用 bitset 压位至 $\frac {n^3} w$。

值域还是太难受了,考虑怎么压下来值域,因为和为 $0$,值域又是 $n$,通过调整顺序总是存在一种方案使得值域在 $[-n,n]$。但是我们不知道这个顺序,但感觉存太大值域又没用。

所以随机一个顺序,可以证明这个时候值域期望是不大于 $O(n^{1.5})$ 的,复杂度可以做到 $O(\frac {n^{2.5}} w)$。

posted @ 2023-06-08 15:43  寂静的海底  阅读(17)  评论(0)    收藏  举报  来源