4 条题解

  • 1
    @ 2024-3-10 19:52:12
    #include <bits/stdc++.h>
    using namespace std;
    int n,m,ans,maxx; 
    bool vis[105][105];
    char a[105][105]; 
    int dx[4]={0,0,1,-1};
    int dy[4]={1,-1,0,0};
    struct point
    {
    	int x,y;
    };//建立坐标结构体
    queue<point> q;//结构体队列
    void bfs(int x,int y)
    {
    	q.push((point){x,y});//起点入队
    	while(q.size()>0)
    	{
    		point now=q.front();
    		q.pop();
    		for(int i=0;i<4;i++)
    		{
    			int nx=now.x+dx[i];
    			int ny=now.y+dy[i];
    			if(nx>=1&&nx<=n&&ny>=1&&ny<=m&&!vis[nx][ny]&&a[nx][ny]==a[now.x][now.y])//下一个如果合法就入队,个数加1
    			{
    				vis[nx][ny]=true;
    				ans++;
    				q.push((point){nx,ny});
    			}
    		}
    	}
    	maxx=max(ans,maxx);//做完一次后求一次最值
    }
    int main()
    {
    	cin>>n>>m;
    	for(int i=1;i<=n;i++)
    	{
    		for(int j=1;j<=m;j++)
    		{
    			cin>>a[i][j];
    		}
    	}
    	for(int i=1;i<=n;i++)
    	{
    		for(int j=1;j<=m;j++)
    		{
    			if(!vis[i][j])
    			{
    				vis[i][j]=true;
    				ans=1;
    				bfs(i,j);
    			}
    		}
    	}
    	cout<<maxx;
        return 0;
    }
    
    • -2
      @ 2021-12-20 16:30:10
      
      #include <bits/stdc++.h>
      using namespace std;
      int n,m,ans,maxx; 
      bool vis[105][105];
      char a[105][105]; 
      int dx[4]={0,0,1,-1};
      int dy[4]={1,-1,0,0};
      struct point
      {
      	int x,y;
      };//建立坐标结构体
      queue<point> q;//结构体队列
      void bfs(int x,int y)
      {
      	q.push((point){x,y});//起点入队
      	while(q.size()>0)
      	{
      		point now=q.front();
      		q.pop();
      		for(int i=0;i<4;i++)
      		{
      			int nx=now.x+dx[i];
      			int ny=now.y+dy[i];
      			if(nx>=1&&nx<=n&&ny>=1&&ny<=m&&!vis[nx][ny]&&a[nx][ny]==a[now.x][now.y])//下一个如果合法就入队,个数加1
      			{
      				vis[nx][ny]=true;
      				ans++;
      				q.push((point){nx,ny});
      			}
      		}
      	}
      	maxx=max(ans,maxx);//做完一次后求一次最值
      }
      int main()
      {
      	cin>>n>>m;
      	for(int i=1;i<=n;i++)
      	{
      		for(int j=1;j<=m;j++)
      		{
      			cin>>a[i][j];
      		}
      	}
      	for(int i=1;i<=n;i++)
      	{
      		for(int j=1;j<=m;j++)
      		{
      			if(!vis[i][j])
      			{
      				vis[i][j]=true;
      				ans=1;
      				bfs(i,j);
      			}
      		}
      	}
      	cout<<maxx;
          return 0;
      }
      • -3
        @ 2022-4-19 22:36:08

        严禁抄题解,发现后取消成绩

        • -5
          @ 2022-4-24 17:49:15

          写题解请注意

          鼓励大家写题解,但注意题解格式。

          题解一定要有思路解析或代码注释,能否让别人理解你的思路

          也是你的能力的检验,不要只放无意义的代码给大家复制,那就失去了做题的初心。

          给代码两端加上这个会舒服一些

          ```cpp

          你的代码

          ```

          </span>

          这个点在键盘的左上角tab上面那个键,注意切换输入法

          #include<iostream>
          using namespace std;
          int main()
          {
              int n;
              cin>>n;//这是一个注释
              return 0;
          } 
          

          请注意严禁抄袭题解,写题解不要只放代码,需加上你的思路或代码注释。

          抄袭题解一经发现直接取消成绩。

          题解被删除的可能

          1. 代码不符合格式规范
          2. 没有思路讲解或者没有注释,
          3. 无意义的题解

          大家携手共同维护一个良好的编程环境,如果一经发现,多次作乱。可能会被管理员拉黑,请注意,一旦拉黑即失去登陆资格。

          • 1

          信息

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