2 条题解

  • 0
    @ 2023-3-20 19:11:55

    #include<bits/stdc++.h> using namespace std; char a[10001][10001]; int n,sum,maxx=-9999,m,zf[4][2]={{1,0},{0,1},{0,-1},{-1,0}}; int h=1,t=1; struct que { int x; int y; }; struct que dl[10000000]; void bfs(int x,int y,char e) { sum=1; dl[t].x=x; dl[t].y=y; t++; while(h<t){ for(int i=0;i<4;i++) { int tx=dl[h].x+zf[i][0],ty=dl[h].y+zf[i][1]; if(tx<0||tx>n||ty<0||ty>m)continue; if(a[tx][ty]==e){ a[tx][ty]='0'; dl[t].x=tx; dl[t].y=ty; t++; sum++; } } h++; } if(sum>maxx)maxx=sum; } int main() { cin>>n>>m; for(int i=0;i<=n;i++) { gets(a[i]); } for(int i=0;i<=n;i++) { for(int j=0;j<=m;j++) { if(a[i][j]>'0') { char o=a[i][j]; a[i][j]='0'; bfs(i,j,o); sum++; } } } cout<<maxx; return 0; } //c语言(表情自己填(image ))

    • -5
      @ 2022-10-10 11:55:08
      #include<bits/stdc++.h>
      using namespace std;
      char a[10001][10001];
      int n,sum,maxx=-9999,m,zf[4][2]={{1,0},{0,1},{0,-1},{-1,0}};
      int h=1,t=1;
      struct que{
      	int x;
      	int y;
      };
      struct que dl[10000000]; 
      void bfs(int x,int y,char e){
      	sum=1;
      	dl[t].x=x;
      	dl[t].y=y;
      	t++;
      	while(h<t){
      		for(int i=0;i<4;i++){
      			int tx=dl[h].x+zf[i][0],ty=dl[h].y+zf[i][1];
      			if(tx<0||tx>n||ty<0||ty>m)continue;
      			if(a[tx][ty]==e){
      				a[tx][ty]='0';
      				dl[t].x=tx;
      				dl[t].y=ty;
      				t++;
      				sum++;
      			}
      		}
      		h++;
      	}
      	if(sum>maxx)maxx=sum;
      }
      int main(){
      	cin>>n>>m;
      	for(int i=0;i<=n;i++){
      		gets(a[i]);
      	}
      	for(int i=0;i<=n;i++){
      		for(int j=0;j<=m;j++){
      			if(a[i][j]>'0'){
      				char o=a[i][j];
      				a[i][j]='0';
      				bfs(i,j,o);
      				sum++;
      			}
      		}
      	}
      	cout<<maxx;
      	return 0;
      }
      
      • 1

      信息

      ID
      377
      时间
      1000ms
      内存
      64MiB
      难度
      7
      标签
      递交数
      185
      已通过
      38
      上传者