0 分,不过样例,玄关求助
  • 板块P1141 01迷宫
  • 楼主QAQ_liu
  • 当前回复14
  • 已保存回复14
  • 发布时间2024/8/21 16:23
  • 上次更新2024/8/21 19:08:59
查看原帖
0 分,不过样例,玄关求助
1032871
QAQ_liu楼主2024/8/21 16:23
#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,m,sum,d[4][2]={{0,1},{1,0},{0,-1},{-1,0}};
char a[1005][1005];
void dfs(int x,int y,int s){
	int nx,ny;
	char h;
	if(x==n&&y==m) sum=max(sum,s);
	if(a[x][y]=='1') h='1';
	else h='0';
	for(int i=0;i<4;i++){
		nx=x+d[i][0];
		ny=y+d[i][1];
		if(nx<1||ny<1||nx>n||ny>n) continue;
		if(a[nx][ny]=='1'&&h!=a[nx][ny]) dfs(nx,ny,s+1);
		else continue;
	}
}
signed main(){
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++) cin>>a[i][j];
	}
	while(m--){
		sum=0;
		int x,y;
		cin>>x>>y;
		dfs(x,y,0);
		cout<<sum<<"\n";
	}
    return 0;
}
2024/8/21 16:23
加载中...