求救,编译错误
查看原帖
求救,编译错误
243063
cyx20080216楼主2021/3/13 20:46

蒟蒻的代码:

#include<bits/stdc++.h>
using namespace std;
const int dx[4]={1,0,-1,0};
const int dy[4]={0,1,0,-1};
int n;
bool flag[3001][3001];
int ans=0;
inline bool check(const int &x,const int &y)
{
	if(!flag[x][y])
		return 0;
	int sum=0;
	for(int i=0;i<4;i++)
	{
		if(flag[x+dx[i]][y+dy[i]])
			sum++;
	}
//	printf("sum=%d\n",sum);
	return sum==3;
}
void dfs(const int &x,const int &y)
{
	for(int i=0;i<4;i++)
	{
		int nx=x+dx[i];
		int ny=y+dy[i];
		if(!flag[nx][ny])
		{
			flag[nx][ny]=1;
			ans++;
			if(check(nx,ny))
				dfs(nx,ny);
			for(int i=0;i<4;i++)
			{
				if(check(nx+dx[i],ny+dy[i]))
					dfs(nx+dx[i],ny+dy[i]);
			}
		}
	}
}
int main()
{
//	freopen(".in","r",stdin);
//	freopen(".out","w",stdout);
	scanf("%d",&n);
	for(int i=1;i<=n;i++)
	{
		int x,y;
		scanf("%d %d",&x,&y);
		x+=1000,y+=1000;
		if(flag[x][y]) ans--;
		else
		{
			flag[x][y]=1;
			if(check(x,y))
				dfs(x,y);
			for(int j=0;j<4;j++)
			{
				if(check(x+dx[j],y+dy[j]))
					dfs(x+dx[j],y+dy[j]);
			}
		}
		printf("%d\n",ans);
	}
//	fclose(stdin);
//	fclose(stdout);
	return 0;
}

在本机测试还没问题,交到洛谷上就报编译错误

评测记录

环境:Windows7 x64

Dev-Cpp v5.11

2021/3/13 20:46
加载中...