2 条题解

  • 0
    @ 2025-7-17 15:14:04
    #include<bits/stdc++.h>
    using namespace std;
    char a[1010][1010];
    int n,m,s,dx[]={0,0,1,-1},dy[]={1,-1,0,0},maxn;
    void dfs(int x,int y)
    {
    	s++;
    	a[x][y]='.';
    	for(int i=0;i<4;i++)
    	{
    		int xx=x+dx[i];
    		int yy=y+dy[i];
    		if(xx<=n&&yy<=m&&xx>=1&&yy>=1&&a[xx][yy]=='*')dfs(xx,yy);
    	}
    }
    int main()
    {
    	ios::sync_with_stdio(0);
    	cin.tie(0);
    	cout.tie(0);
    	cin>>m>>n;
    	for(int i=1;i<=n;i++)
    		cin>>a[i]+1;
    	for(int i=1;i<=n;i++)
    		for(int j=1;j<=m;j++)
    			if(a[i][j]=='*')
    			{
    				s=0;
    				dfs(i,j);
    				maxn=max(maxn,s);
    			}
    	cout<<maxn;
    	return 0;
    }
    
    
    • 0
      @ 2023-8-8 15:47:33
      #include<bits/stdc++.h>
      using namespace std;
      char a[1010][1010];
      int n,m,s,dx[]={0,0,1,-1},dy[]={1,-1,0,0},maxn;
      void dfs(int x,int y)
      {
      	s++;
      	a[x][y]='.';
      	for(int i=0;i<4;i++)
      	{
      		int xx=x+dx[i];
      		int yy=y+dy[i];
      		if(xx<=n&&yy<=m&&xx>=1&&yy>=1&&a[xx][yy]=='*')dfs(xx,yy);
      	}
      }
      int main()
      {
      	ios::sync_with_stdio(0);
      	cin.tie(0);
      	cout.tie(0);
      	cin>>m>>n;
      	for(int i=1;i<=n;i++)
      		cin>>a[i]+1;
      	for(int i=1;i<=n;i++)
      		for(int j=1;j<=m;j++)
      			if(a[i][j]=='*')
      			{
      				s=0;
      				dfs(i,j);
      				maxn=max(maxn,s);
      			}
      	cout<<maxn;
      	return 0;
      }
      
      • 1

      信息

      ID
      106
      时间
      1000ms
      内存
      128MiB
      难度
      4
      标签
      递交数
      23
      已通过
      15
      上传者