>Link
luogu P3067
>Description
给n个数,从中任意选出一些数,使这些数能分成和相等的两组。
求有多少种选数的方案。
N ≤ 20 , a i ≤ 1 0 8 N\le 20, a_i \le 10^8 N≤20,ai≤108
>解题思路
考虑普通的爆搜,用一个 s u m sum sum表示当前的离两组相等的“差值”,每个数就有三种状态:
- 不选, s u m sum sum不变
- 选进第一组, s u m + a i sum+a_i sum+ai
- 选进第二组, s u m − a i sum-a_i sum−a