Autumn_0930 @ 2024-08-01 16:59:01
检查一下输入1 1 p的情况
应该输出1
如果你的输出是0,OK可以加特判
如果是1,那就是我太菜其它问题了
(因为在初始化的过程中,第一行的f[1][i][0]默认将第0行的二进制状态设为0,但最后找答案的时候是从状态1开始的)
把找答案的循环
int ans=0;
for(int i=1;i<=cnt;i++){
for(int j=1;j<=cnt;j++) ans=max(ans,f[n][i][j]);
}
cout<<ans;
改成:
int ans=0;
if(n!=1){
for(int i=1;i<=cnt;i++){
for(int j=1;j<=cnt;j++) ans=max(ans,f[n][i][j]);
}
}else{
for(int i=1;i<=cnt;i++) ans=max(ans,f[n][i][0]);
}
cout<<ans;
即可
by Autumn_0930 @ 2024-08-01 17:00:02
“输入1 1 P”打错了抱一丝