状态压缩

https://codeforces.com/contest/962/problem/C 题目大意 给出数字 $n \ (1 \le n \le 2 \times 10^9)$。问能否从 $n$ 中删掉一些数字得到另一个不含前导零的数字(循序不变),使得新数字是一个平方数。不能输出 $-1$,能则输出最少需要删除的数。 简要题解 这里注意到一
高维前缀和 SOS DP 子集和问题 其实这类算法更多的是解决子集和 (sum of subset) 问题,因此也叫 SOS DP。 $$ sum[i] = \sum_{j \subseteq i} a[j] $$ 即 $$ sum[i] = \sum_{j | i = i} a[j] $$ 这里我们有个非常显然的做法是可以枚举所有集合判断是否是当前所求