新年的巧克力棒
from Picks
数据是 vfleaking 造的,题解也是 vfleaking 写的。
算法一
有20分的数据巧克力棒长度非常小,直接搜索下或者手算就行了。
算法二
对于 $n \leq 1000$,我们可以用 DP 解决。 $f[i] = \max(f[k] + f[i - k] + [k == i - k])$。$[k = i - k]$ 表示 $k = i - k$ 时为 $1$ 否则为 $0$。时间复杂度 $O(n^2)$,可以通过前 $5$ 个点获得 50 分。
不靠谱的正解
你需要打个表,然后找规律,就能发现答案是 $n - c(n)$,其中 $c(n)$ 是 $n$ 的二进制表示中 $1$ 的个数。然后就 AC 了!