爆0!测试点一本地都能过,交上去就报错
  • 板块P1141 01迷宫
  • 楼主lzc2006
  • 当前回复9
  • 已保存回复9
  • 发布时间2022/6/11 11:08
  • 上次更新2023/10/27 23:34:08
查看原帖
爆0!测试点一本地都能过,交上去就报错
558299
lzc2006楼主2022/6/11 11:08

求助大佬

下载了第一个测试点,本地编译答案完全正确,交上去就报错,是什么问题

#include<iostream>
#include<stdio.h> 
#include<cmath> 
#include<cstring>
#include<algorithm>
#include<queue>
using namespace std;

int p[100010],n,m,map[1010][1010],x,y,sum,abc[4][2]={{1,0},{-1,0},{0,1},{0,-1}};
bool bo[1010][1010];
char num;

struct www{
	int x,y;
};

www now;

void bfs(int x,int y)
{
    memset(bo,0,sizeof(bo));
	queue <www> q=queue<www>();
    www k;
    k.x=x;
	k.y=y;
	q.push(k);
	while(!q.empty())
	{
		now=q.front();
		for(int i=0;i<4;i++)
		{
			int xx=now.x+abc[i][0];
			int yy=now.y+abc[i][1];
			if(xx>0&&yy>0&&xx<=n&&yy<=n)
			if(bo[xx][yy]==0)
			{
				if(map[now.x][now.y]==1)
				{
					if(map[xx][yy]==0)
					{
						bo[xx][yy]=1;
				        www c;
				        c.x=xx;
				        c.y=yy;
				        q.push(c);
				        sum++;
					}
				}
				if(map[now.x][now.y]==0)
				{
					if(map[xx][yy]==1)
					{
						bo[xx][yy]=1;
				        www c;
				        c.x=xx;
				        c.y=yy;
				        q.push(c);
				        sum++;
					}
				}
			}
		}
		q.pop();
	}
}

int main()
{
	cin>>n>>m;
	getchar();
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=n;j++)
		{
			num=getchar();
			map[i][j]=num-'0';
		}
		getchar();
	}
	
	for(int i=1;i<=m;i++)
	{
		cin>>x>>y;
		bfs(x,y);
		if(sum!=0)
		p[i]=sum;
		else
		p[i]=1;
		sum=0;
	}
	for(int i=1;i<=m;i++)
	{
		cout<<p[i]<<endl;
	}
	return 0;
}

2022/6/11 11:08
加载中...