$bitset$ 优化 $dp$ .
考虑最朴素的 $dp$ , $f(i,j)$ 表示考虑前 $i$ 个数,能否使得 $S=j$ .
转移时枚举当前这一位选哪一个数,这样直接做的时间复杂度是 $O(n^5)$ .
因为只有 $0/1$ 运算,第二维的最大值为 $10^6$ ,用 $bitset$ 优化,复杂度变成 $O(\frac {n^5} {64})$ ,就可以过了.
1 |
|
夢はここに 思い出は遠くに
$bitset$ 优化 $dp$ .
考虑最朴素的 $dp$ , $f(i,j)$ 表示考虑前 $i$ 个数,能否使得 $S=j$ .
转移时枚举当前这一位选哪一个数,这样直接做的时间复杂度是 $O(n^5)$ .
因为只有 $0/1$ 运算,第二维的最大值为 $10^6$ ,用 $bitset$ 优化,复杂度变成 $O(\frac {n^5} {64})$ ,就可以过了.
1 | #include<bits/stdc++.h> |