bfs玄学错误

P1162 填涂颜色

蓝枫_寞 @ 2020-11-06 20:03:08

蒟蒻学习bfs 打完代码后完全不知道为什么炸了

#include<bits/stdc++.h>
using namespace std;
int n,a[35][35];
short m1[4]={-1,0,0,1};
short m2[4]={0,-1,1,0};
void dfs(int x,int y){
    a[x][y]=0;
    for(int i=0;i<4;i++){
        int mx=x+m1[i],my=y+m2[i];
        if(mx<1||my<1||mx>n||my>n) continue;
        dfs(mx,my);
    }
}
int main(){
    cin>>n;
    for(int i=1;i<=n;i++)
        for(int j=1;j<=n;j++){
            cin>>a[i][j];
            if(a[i][j]==0) a[i][j]=2;
        }
    for(int i=1;i<=n;i++){
            if(a[i][1]==2) dfs(i,1);
            if(a[1][i]==2) dfs(1,i);
            if(a[i][n]==2) dfs(i,n);
            if(a[n][i]==2) dfs(n,i);
        }
    for(int i=1;i<=n;i++){
        for(int j=1;j<=n;j++)
            cout<<a[i][j]<<" ";
        cout<<endl;
    }
    return 0;
}

by 江户川·萝卜 @ 2020-11-06 20:17:49

@血殷阁_北慕汐 代码都没看完就胡说?您真强呢


by MX_muxi @ 2020-11-06 20:19:27

@江户川·萝卜 只是信任lz而已啦(相识一场的朋友)


by 蓝枫_寞 @ 2020-11-06 20:26:22

@江户川·萝卜 那边界要怎么判断啊


by 蓝枫_寞 @ 2020-11-06 20:30:39

if(mx<1||my<1||mx>n||my>n) continue;

这没有判断吗?


by 蓝枫_寞 @ 2020-11-06 20:30:59

@江户川·萝卜


by 旭日临窗 @ 2020-11-06 22:31:05

@蓝枫_寞

你这边界判断肯定是有的


上一页 |