各位大牛们帮帮我(哭脸)
  • 板块学术版
  • 楼主ZhanMoonSMZ
  • 当前回复4
  • 已保存回复4
  • 发布时间2022/2/25 20:24
  • 上次更新2023/10/28 07:46:09
查看原帖
各位大牛们帮帮我(哭脸)
494203
ZhanMoonSMZ楼主2022/2/25 20:24

P1141 迷宫

70分怎么改

#include<bits/stdc++.h>
using namespace std;
const int N=1005;
int dx[4]={0,1,0,-1},dy[4]={1,0,-1,0};
struct PII{int x,y;}q[N*N];
int n,m;
char g[N][N];
bool b[N][N];
int bfs(int x,int y){
	int hh=0,tt=0;
	q[0]={x,y};
	b[x][y]=1;
	while(hh<=tt){
		PII t=q[hh++];
		for(int i=0;i<4;++i){
			int u=t.x+dx[i],v=t.y+dy[i];
			if(u<1||u>n||v<1||v>n||b[u][v]) continue;
			if(g[t.x][t.y]==g[u][v]) continue;
			b[u][v]=1;
			q[++tt]={u,v};
		}
	}
	return tt+1;
}
int main(){
	cin>>n>>m;
	for(int i=1;i<=n;++i)
	for(int j=1;j<=n;++j) scanf(" %c",&g[i][j]);{
		while(m--){
			int x,y;
			scanf("%d%d",&x,&y);
			memset(b,0,sizeof b);
			printf("%d\n",bfs(x,y));
		}
	} 
}
2022/2/25 20:24
加载中...