到底哪里错了QAQ
  • 板块P1141 01迷宫
  • 楼主RainTree
  • 当前回复4
  • 已保存回复4
  • 发布时间2022/9/18 18:35
  • 上次更新2023/10/27 10:46:42
查看原帖
到底哪里错了QAQ
530150
RainTree楼主2022/9/18 18:35
#include<iostream>
#include<cstdio>
#include<cstring>
#include<iomanip>
#include<cmath>
using namespace std;
long long n,m,ans,ant[100010][100010],antt[100010],ii[100010],jj[100010];
string nm[100010];
int dx[4]{1,-1,0,0};
int dy[4]{0,0,1,-1};
void dfs(int idx,int idy)
{
	for(int i=0;i<4;i++)
	{
		int x=idx+dx[i];
		int y=idy+dy[i];
		if(x>=n||x<0||y>=m||y<0)continue;
		if(nm[idx][idy]=='1')
		{
			ant[idx][idy]=1;
			if(nm[x][y]=='0'&&ant[x][y]==0)
			{
				ant[x][y]=1;
				ans++;
				dfs(x,y);
			}
		}
		if(nm[idx][idy]=='0')
		{
			ant[idx][idy]=1;
			if(nm[x][y]=='1'&&ant[x][y]==0)
			{
				ant[x][y]=1;
				ans++;
				dfs(x,y);
			}
		}
	}
}
int main()
{
    cin>>n>>m;
    for(int i=0;i<n;i++)cin>>nm[i];
	for(int i=0;i<m;i++)
	{
		cin>>ii[i]>>jj[i];
		ans++;
		dfs(ii[i],jj[i]);
		for(int j=0;j<n;j++)for(int k=0;k<n;k++)ant[j][k]=0;
		antt[i]=ans;
		ans=0;
	}
	for(int i=0;i<m;i++)cout<<antt[i]<<endl;
    return 0;
}
2022/9/18 18:35
加载中...