爆0求调
查看原帖
爆0求调
894813
qyh_qianyuheng2012楼主2024/12/27 23:52
#include<bits/stdc++.h>
using namespace std;
bool b[1005][1005];
char a[1005][1005];
int n,m,s[100005];
int maxn;
void f(int x,int y,int cnt,char z){
	if(a[x][y]==z&&cnt>1)
	  return;
	if(x>n||y>n||x<1||y<1||b[x][y])
	  return;
	b[x][y]=1;
	maxn=max(maxn,cnt);
	f(x-1,y,cnt+1,a[x][y]);
	f(x,y-1,cnt+1,a[x][y]);
	f(x+1,y,cnt+1,a[x][y]);
	f(x,y+1,cnt+1,a[x][y]);
}
int main(){
	scanf("%d%d",&n,&m);
	for(int i=1;i<=n;i++)
	  for(int j=1;j<=n;j++)
	    cin>>a[i][j];
	for(int i=1;i<=m;i++){
		for(int j=1;j<=n;j++)
		  for(int k=1;k<=n;k++)
		    b[j][k]=0;
		int x,y;
		maxn=0;
		scanf("%d%d",&x,&y);
		f(x,y,1,a[x][y]);
		s[i]=maxn;
	}
	for(int i=1;i<=m;i++)
	  printf("%d\n",s[i]);
	return 0;
}
2024/12/27 23:52
加载中...