警钟:if you WA on#11#12
查看原帖
警钟:if you WA on#11#12
890346
Autumn_0930楼主2024/8/1 16:59

检查一下输入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;

即可

2024/8/1 16:59
加载中...