蒟蒻70分代码求助
  • 板块学术版
  • 楼主ztyo_zysclown
  • 当前回复1
  • 已保存回复1
  • 发布时间2023/10/16 20:42
  • 上次更新2023/11/2 13:23:14
查看原帖
蒟蒻70分代码求助
947854
ztyo_zysclown楼主2023/10/16 20:42

题目

#include<bits/stdc++.h>
using namespace std;
char a[1100][1100];
int n,m;
int b[1100][1100];
int fx[5]={0,1,-1,0,0};
int fy[5]={0,0,0,1,-1};
int sum=0;
void dfs(int x,int y){
	//a[x][y]=false;
	if(x<1||y<1||x>n||y>n){
		return;
	}
	if(b[x][y]>-1){
		return ;
	}
	sum++;
	b[x][y]=0;
	for(int i=1;i<=4;i++){    
		int tx=x+fx[i];
		int ty=y+fy[i];
		if(a[tx][ty]!=a[x][y]){
			dfs(tx,ty);
		}
	}
} 
int main(){
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	cin>>n>>m;
//	for(int i=1;i<=n;i++){
//		for(int j=1;j<=n;j++){
//			b[i][j]=-1;
//		}
//	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			cin>>a[i][j];
		}
	}
	for(int i=1;i<=m;i++){
		for(int q=1;q<=n;q++){
			for(int w=1;w<=n;w++){
				b[q][w]=-1;
			}
		}
		int x,y;
		cin>>x>>y;
		sum=0;
		dfs(x,y);cout<<sum<<endl;
		for(int o=1;o<=n;o++){
			for(int p=1;p<=n;p++){
				if(b[o][p]==0){
					b[o][p]=sum;
				}
			}
		} 
		
	}
	return 0;
}

用了一堆加速的,但还是过不了

2023/10/16 20:42
加载中...