#A15. 深搜模板-红与黑-偏移数组

深搜模板-红与黑-偏移数组

    #include
    using namespace std;

    int w,h;
    char mg[21][21];
    int dx[]={ {{ input(1) }} }; // 填空1:x方向的偏移数组
    int dy[]={ {{ input(2) }} }; // 填空2:y方向的偏移数组
    int ans;

    void bfs(int x,int y){
        if(x<=0||x>h||y<=0||y>w){{ input(3) }}; // 填空3:判断是否越界
        if(mg[x][y]=='#'){{ input(4) }}; // 填空4:判断是否为障碍物
        mg[x][y]={{ input(5) }}; // 填空5:标记已访问
        ans{{ input(6) }}; // 填空6:更新答案
        for(int i=0; i<{{ input(7) }}; i++){ // 填空7:循环次数
            bfs(x+dx[i],y+dy[i]);
        }
    }

    int main(){
        cin>>w>>h;
        int start_x;
        int start_y;
        while(w&&h){
            for(int i=1; i<=h; i++){
                for(int j=1; j<=w; j++){
                    cin>>mg[i][j];
                    if(mg[i][j]=='@'){
                        start_x=i;
                        start_y=j;
                    }
                }
            }
            ans=0;
            bfs(start_x,start_y);
            cout<<ans<<endl;
            cin>>w>>h;
        }
        return 0;
    }