社区讨论

未曾想过的结局

P1746离开中山路参与者 4已保存回复 6

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
6 条
当前快照
1 份
快照标识符
@mhjhvkl9
此快照首次捕获于
2025/11/04 02:49
4 个月前
此快照最后确认于
2025/11/04 02:49
4 个月前
查看原帖

全RE

CPP
#include<bits/stdc++.h>
using namespace std;

int d[1010][1010];
bool v[1010][1010];
queue<pair<int,int>> q;
int main(){
    int n;
    cin>>n;
    for(int i=1;i<=n;i++){
        getchar();
        for(int j=1;j<=n;j++){
            char c=getchar();
            v[i][j]=(c=='0');
            d[i][j]=1000000;
        }
    }
    int xx1,yy1,xx2,yy2;
    cin>>xx1>>yy1>>xx2>>yy2;
    q.push({xx1,yy1});
    d[xx1][yy1]=0;
    while(!q.empty()){
		int x=q.front().first,y=q.front().second;
    	q.pop();
        if(x<0 || y<0 || x>n || y>n){
            continue;
        }
    	if(v[x][y]){
            d[x+1][y]=min(d[x+1][y],d[x][y]+1);
            d[x-1][y]=min(d[x-1][y],d[x][y]+1);
            d[x][y-1]=min(d[x][y-1],d[x][y]+1);
            d[x][y+1]=min(d[x][y+1],d[x][y]+1);
            q.push({x+1,y});
            q.push({x-1,y});
            q.push({x,y-1});
            q.push({x,y+1});
        }
        v[x][y]=false;
    }
    /*
    for(int i=1;i<=n;i++){
        for(int j=1;j<=n;j++){
            cout<<d[i][j]<<' ';
        }
        cout<<'\n';
    }
    for(int i=1;i<=n;i++){
        for(int j=1;j<=n;j++){
            cout<<v[i][j];
        }
        cout<<'\n';
    }
    */
    cout<<d[xx2][yy2]<<'\n';
	return 0;
}
空间开到1010了,特判了<0已死,求救空间开到1010了,特判了<0 已死,求救

回复

6 条回复,欢迎继续交流。

正在加载回复...