题目大意
取一个 [ 1 , n ] [1,n] [1,n]的数的集合 S S S,如果 S S S中的一个子集的和等于 x x x,称 S S S可以还原 x x x,问有多少个子集 S S S可以还原 [ 1 , n ] [1,n] [1,n]
题解
肯定要把这个条件转化成一个比较好处理的充要条件,如果有一个集合 S S S中的数从小到大排列为 x 1 , x 2 ⋯ x n x_1,x_2\cdots x_n x1,x2⋯xn,考虑这样一件事,假设前 j j j个数能够还原 [ 1 , ∑ i = 1 j x i ] [1,\sum_{i=1}^jx_i] [1,∑i=1jxi],如果有 ∑ i = 1 j x i + 1 ≥ x j + 1 \sum_{i=1}^jx_i+1\ge x_{j+1} ∑i=1jxi+1≥xj+1,所以前 j + 1 j+1 j+1个数能够还原