JAVA开始开了个sta[tot]挨个记录可用的state,发现最后一个用例过不了,TLE了。
后来直接把循环改了,直接让state 从0自增到(1 << (m + 1)) - 1,直接就过了。
列一下修改前后的代码:
for (int tt = 0; tt < preMaxTT; tt++) {
int state = sta[cur ^ 1][tt];
int v = dp[idx + 1][state];
......
}
for (int tt = 0; tt<MASK; tt++){
if (dp[idx + 1][tt] < 0) {
continue;
}
int state = tt;
int v = dp[idx + 1][state];
...
}