发个帖怎么总是奇奇怪怪的,玄关求调
  • 板块灌水区
  • 楼主yitian_
  • 当前回复4
  • 已保存回复4
  • 发布时间2024/4/12 23:34
  • 上次更新2024/4/13 10:10:58
查看原帖
发个帖怎么总是奇奇怪怪的,玄关求调
1263486
yitian_楼主2024/4/12 23:34

60分,超时了,求优化

#include<bits/stdc++.h>
using namespace std;

int n,m,num,ans,dx[8]={0,0,1,-1},dy[8]={1,-1,0,0};
int a[600][600]={0};
int b[600][600]={0};

void dfs(int x,int y)
{
	int q,w;b[x][y]=1;
	for(int i=0;i<4;i++)
	{
		q=x+dx[i];
		w=y+dy[i];
		if(q>=0&&w>=0&&q<n&&w<n&&a[q][w]==a[x][y]&&b[q][w]==0)
		{
			dfs(q,w);	
		}
	}
}

int main()
{
	scanf("%d%d",&n,&m); 
	for(int k=0;k<m;k++)
	{
		int c,x,y;
		scanf("%d%d%d",&c,&x,&y); 
		a[x-1][y-1]=c+1;
		for(int i=0;i<n;i++)
		{	
			for(int j=0;j<n;j++)
			{
				if(a[i][j]!=0&&b[i][j]==0)
				{	
					dfs(i,j);
					ans++;
				}
			}
		}
		memset(b,0,sizeof(b));	
		printf("%d\n",ans);
		ans=0;
	}
	return 0;
} 
2024/4/12 23:34
加载中...