站外题求调,玄关
  • 板块灌水区
  • 楼主yitian_
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/4/12 23:21
  • 上次更新2024/4/12 23:29:42
查看原帖
站外题求调,玄关
1263486
yitian_楼主2024/4/12 23:21

超时了超时了 ACAC 6060% 求优化求优化

我的代码:我的代码:

#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:21
加载中...