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

60分,超时了,求优化

我的代码:```c #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:29
加载中...