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
      @ 2022-4-19 22:36:08

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

      • -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;
        }
        • -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
          标签
          递交数
          103
          已通过
          41
          上传者