蒟蒻求助 P1141 01迷宫MLE
  • 板块学术版
  • 楼主wyc0607
  • 当前回复1
  • 已保存回复1
  • 发布时间2023/10/18 19:10
  • 上次更新2023/11/2 13:02:06
查看原帖
蒟蒻求助 P1141 01迷宫MLE
972066
wyc0607楼主2023/10/18 19:10

题目

MLE代码

#include<bits/stdc++.h>
using namespace std;
#define reg register
struct node{
	int x,y;
};
int a[1005][100005];
int ans;
int n,m,x1,x2;
char qw;
const int dx[]={0,0,1,-1},dy[]={1,-1,0,0};
bool vis[1005][100005];
inline bool ck(int x,int y,int x1,int y1){
	if(x>n||y>n||x<1||y<1||vis[x][y]||a[x][y]==a[x1][y1]) return 0;
	return 1;
}
inline long long BFS(int x1,int x2){
	queue<node> q;
	node now,nxt;
	now.x=x1,now.y=x2;
	q.push(now);
	while(!q.empty()){
		now=q.front();
		q.pop();
		for(int i=0;i<4;i++){
			if(ck(now.x+dx[i],now.y+dy[i],now.x,now.y)){
				ans++;
				vis[now.x+dx[i]][now.y+dy[i]]=true;
				nxt.x=now.x+dx[i];
				nxt.y=now.y+dy[i];
				q.push(nxt);			
			}
		}
	}
	return ans;
}
main(){
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	cin>>n>>m;
	for(reg int i=1;i<=n;i++){
		for(reg int j=1;j<=n;j++){
		cin>>qw;
		a[i][j]=qw-'0';
		}
	}
		for(reg int i=1;i<=m-1;i++){
		memset(vis,false,sizeof(vis));
		ans=1;
		cin>>x1>>x2;
		vis[x1][x2]=true;
		cout<<BFS(x1,x2)<<"\n";
		}
		memset(vis,false,sizeof(vis));
		ans=1;
		cin>>x1>>x2;
		vis[x1][x2]=true;
		cout<<BFS(x1,x2);
}
2023/10/18 19:10
加载中...