_AC_IS_GOD_QP_ @ 2024-07-20 13:48:23
rt,输入不了起始坐标。。。
#include<bits/stdc++.h>
using namespace std;
struct node{
int w_n,r,c;
};
int main(){
int n,m;
bool a[1005][1005];
int maxx=-1e9;
queue<node> Q;
cin>>n>>m;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
cin>>a[i][j];
}
}
while(m--){
node init;
init.w_n=1;
int r1,c1;
cin>>r1>>c1;
init.r=r1;
init.c=c1;
Q.push(init);
while(Q.size()){
bool flag=false;
node L=Q.front();
if(L.c-1>0&&a[L.r][L.c-1]!=a[L.r][L.c]){
L.c--;
L.w_n++;
Q.push(L);
flag=true;
}
L=Q.front();
if(L.c+1<=n&&a[L.r][L.c+1]!=a[L.r][L.c]){
L.c++;
L.w_n++;
Q.push(L);
flag=true;
}
L=Q.front();
if(L.r-1>0&&a[L.r-1][L.c]!=a[L.r][L.c]){
L.r--;
L.w_n++;
Q.push(L);
flag=true;
}
L=Q.front();
if(L.r+1<=n&&a[L.r+1][L.c]!=a[L.r][L.c]){
L.r++;
L.w_n++;
Q.push(L);
flag=true;
}
if(!flag){
maxx=max(maxx,L.w_n);
}
Q.pop();
}
cout<<maxx<<endl;
}
return 0;
}
求调