代码灵异事件
  • 板块灌水区
  • 楼主A_small_WA
  • 当前回复9
  • 已保存回复10
  • 发布时间2024/8/18 20:16
  • 上次更新2024/8/18 22:54:12
查看原帖
代码灵异事件
1124323
A_small_WA楼主2024/8/18 20:16

rt,一份简单的dfs代码如下(P1123)

#include <bits/stdc++.h>
using namespace std;
int k[10][10],m,n,ans;
int bj[10][10];
int xx[8]={1,0,-1,1,-1,1,0,-1};
int yy[8]={1,1,1,0,0,-1,-1,-1};
void dfs(int x,int y,int cnt){
	ans=max(ans,cnt);
	if(y>n){
		if(x==m) return;
		else x++,y=1;
	}else y++;
	cout<<n<<"\n";
	if(bj[x][y]==0){
		for(int i=0;i<8;i++){
			bj[xx[i]][yy[i]]--;
		}
		dfs(x,y,cnt+k[x][y]);
		for(int i=0;i<8;i++){
			bj[xx[i]][yy[i]]++;
		}
	}
	dfs(x,y,cnt);
}
int main(){
	int t;
	cin>>t;
	while(t--){
		cin>>m>>n;
		ans=0;
		for(int i=1;i<=m;i++){
			for(int j=1;j<=n;j++){
				cin>>k[i][j];
				bj[i][j]=0;
			}
		}
		dfs(1,1,0);
		cout<<ans<<"\n";
	}
	return 0;
}

但是我在整个过程中并没有改变变量 nn 的值,但第 1313 行每次输出的 nn 是变化的,例如输入下面一组数据:

1
4 4
67 75 63 10
29 29 92 14
21 68 71 56
8 67 91 25

nn 的值会递减,求大佬帮指出问题。

2024/8/18 20:16
加载中...