为什么全输出0啊大佬看看
查看原帖
为什么全输出0啊大佬看看
1267057
aa2211034566楼主2024/3/6 18:22
#include<bits/stdc++.h>
using namespace std;
int n,x,y,a[110][110],vist[110][110];
int sum=0;
int da=0;
int step;
int xx[]={1,-1,0,0};
int yy[]={0,0,-1,1};
void dfs(int h, int l, int ct) {
    sum = max(sum, ct);
    for (int i = 0; i < 4; i++) {
    	step=0;
        int dx = h;
        int dy = l;
        while(dx + xx[i] >= 1 && dx + xx[i] <= n && dy + yy[i] >= 1 && dy + yy[i] <= n && a[dx][dy] == 1) {
                step++;
            	dx = dx + xx[i];
            	dy = dy + yy[i];
        }
        if (a[dx][dy] == 0 && vist[dx][dy] == 0) {
            vist[dx][dy] = 1;
            dfs(dx, dy, ct+step);
            vist[dx][dy] = 0;
        }
    }
}


int main(){
	cin>>n>>x>>y;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			cin>>a[i][j];
		}
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			sum=0;
			if(a[i][j]==0){
				vist[i][j]=1;
				dfs(i,j,0);
				vist[i][j]=0;
				da=max(da,sum);
			}
		}
	}
	cout<<da;
	return 0;
}
2024/3/6 18:22
加载中...