捞
memset(f[0], -1, sizeof f[0]); f[0][i] = 0; for(int j = 1; j <= n; j++) for(int s = 0; s < 32; s++) f[j][s] = max(f[j - 1][(s & 15) << 1], f[j - 1][(s & 15) << 1 | 1]) + w[j][s];
这是核心代码,是不是因为后面+出错了 可是还是不太理解,求大佬讲讲