50分,求调
查看原帖
50分,求调
1329138
luogu_hezhenmin1楼主2024/8/26 11:23
#include<bits/stdc++.h>
using namespace std;
bool vis[7][7]={{1,1,1,1,1,1,1},
                {1,0,0,0,0,0,1},
                {1,0,0,0,0,0,1},
                {1,0,0,0,0,0,1},
                {1,0,0,0,0,0,1},
                {1,0,0,0,0,0,1},
                {1,1,1,1,1,1,1},};
short n,m,t,x,y,sx,sy,fx,fy,cnt=0;
short dx[4]={1,0,-1,0},dy[4]={0,1,0,-1};
int main(){
	ios::sync_with_stdio(false);
	cin>>n>>m>>t;
	for(int i=1;i<=5;i++)
		for(int j=1;j<=5;j++)
			if(i>n or j>m) 
				vis[i][j]=1;
			//cout<<vis[i][j]<<" ";
		//cout<<endl;
	cin>>sx>>sy>>fx>>fy;
	while(t--){
		cin>>x>>y;
		vis[x][y]=1;
	}
	queue<pair<short,short>> q;
	q.push({sx,sy});
	while(!q.empty()){
		auto[x,y]=q.front();q.pop();
		for(int i=0;i<=3;i++){
		    int nx=x+dx[i],ny=y+dy[i];
		    if(vis[nx][ny]==1) continue;
		    else if(nx==fx and ny==fy) cnt++;
		    else{
			   q.push({nx,ny});
			   vis[nx][ny]=1;
		    }
		}
	}
	cout<<cnt;
	return 0;
}
2024/8/26 11:23
加载中...