40分,求救
  • 板块P1605 迷宫
  • 楼主patrickwen
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/3/15 18:52
  • 上次更新2024/3/15 20:30:57
查看原帖
40分,求救
1099787
patrickwen楼主2024/3/15 18:52
#include <bits/stdc++.h>
using namespace std;
struct Pos{
    int x,y;
    Pos(int ax = 0, int ay=0) {
        x=ax,y=ay;
    }
};
int n,m,sx,sy,vx,vy,tt,fx,fy,tx,ty,ans=0;
int a[1223][1235]={0};
bool vis[1005][12344];
void bfs(){
    queue<Pos>q;
    q.push(Pos(sx,sy));
    while(!q.empty()) {
        Pos now=q.front();
        q.pop();
        int x = now.x, y = now.y;
        if(x<1||x>n){
            continue; 
        }       
		if(y<1||y>m){
			continue;
		}    
		if(a[x][y]==1){
			continue;
		} 
        if(vis[x][y]==1){
            continue;
        }
        vis[x][y]=1;
        if(x==fx&&y==fy) {
           ans++;
        }
        q.push(Pos(x-1,y));
        q.push(Pos(x+1,y));
        q.push(Pos(x,y+1));
        q.push(Pos(x,y-1));
    }
}
int main() {
    cin>>n>>m>>tt>>sx>>sy>>fx>>fy;
    for(int i=1;i<=tt;i++){
    	cin>>tx>>ty;
        a[tx][ty]=1;
	}
    bfs();
    cout<<ans;
    return 0;
}
2024/3/15 18:52
加载中...