首页 > 其他分享 >填涂颜色

填涂颜色

时间:2022-08-25 07:33:26浏览次数:52  
标签:填涂 颜色 int pop 100 xv yv

enter image description here

输入

enter image description here

输出

已经填好数字 2的完整方阵。

样例输入
6
0 0 0 0 0 0
0 0 1 1 1 1
0 1 1 0 0 1
1 1 0 0 0 1
1 0 0 0 0 1
1 1 1 1 1 1
样例输出
0 0 0 0 0 0
0 0 1 1 1 1
0 1 1 2 2 1
1 1 2 2 2 1
1 2 2 2 2 1
1 1 1 1 1 1

用bfs将闭合圈之外的0染色 最后在反向输出就行了

#include<queue>
#include<bits/stdc++.h>

using namespace std;

int mp[100][100],vis[100][100],n;
int mx[5]={1,0,-1,0},my[5]={0,1,0,-1};

int main()
{
    cin>>n;
    
    queue <int> xv;
    queue <int> yv;
    xv.push(0);
    yv.push(0);
    vis[0][0]=1;

    
    for(int i=1;i<=n;++i)
    {
        for(int j=1;j<=n;++j)
        {
            cin>>mp[i][j];
        }
    }
    
    while(!xv.empty())
    {
        int tx=xv.front();
        int ty=yv.front();
        xv.pop();
        yv.pop();
        for(int i=0;i<4;++i)
        {
            int xx=tx+mx[i];
            int yy=ty+my[i];
            if(xx>=0&&xx<=n+1&&yy>=0&&yy<=n+1&&mp[xx][yy]==0&&vis[xx][yy]==0)
            {
                xv.push(xx);
                yv.push(yy);
                vis[xx][yy]=1;
            }
        }    
    }
    
    for(int i=1;i<=n;++i)
    {
        for(int j=1;j<=n;++j)
        {
            if(vis[i][j]==0&&mp[i][j]==0)
            {
                cout<<2<<" ";
            }
            else if(mp[i][j]==1)
            {
                cout<<1<<" ";
            }
            else
            {
                cout<<0<<" ";
            }
        }
        cout<<endl;
    }
    
    return 0;
}

 

标签:填涂,颜色,int,pop,100,xv,yv
From: https://www.cnblogs.com/XdzxBo/p/16622975.html

相关文章

  • P3201 [HNOI2009] 梦幻布丁 将颜色x变成颜色y 问总共有多少种颜色 启发式合并+链表
    https://www.luogu.com.cn/problem/P3201题目描述nn 个布丁摆成一行,进行 mm 次操作。每次将某个颜色的布丁全部变成另一种颜色的,然后再询问当前一共有多少段颜色。......
  • 洛谷 P1162 填涂颜色
    题目链接:https://www.luogu.com.cn/problem/P1162试题分析:本题运用广搜,我们大体思路是这样的:首先,我们将起始位置放到队尾,然后,在队列不为空的情况下,我们要一直取队首并拓......
  • 填涂颜色
    填涂颜色思路:建立数组xx和数组yy,分别表示每一次操作横纵坐标的对应长度。将输入的方阵外面加上一圈0,第一个入队.然后从涂色的最开始(队首)向周围扩展,若扩展到的点......
  • 2.填涂颜色
    题目链接(码学堂)题目链接(洛谷)分析:这是一个简单的单一连通块问题对于这种分类明显的题,我们可以通过分类来界定一部分是  连通块以外0 vis[i][j]=1; 一部分是  ......
  • 填涂颜色
    如果左上角位置是0的话,我们可以轻松将所有在闭合曲线外的0标记。为防止出现在左上角堆了一堆1的情况,可以在图像的周围包一层0,原来图像中暴露到边界的0肯定和这外围的0联通......
  • Typescript:计算线性渐变任意比例颜色值
    需求:   这两天打算画一个环形进度条,进度从0到100%采用渐变颜色,涉及到各线段颜色取值变化,如果在CSS中,我们可以用linear-gradient达到目的。但遗憾的是,这里用的是ts,需......
  • 搭建直播平台,uniapp开发动态更换状态栏颜色
    搭建直播平台,uniapp开发动态更换状态栏颜色onReady(){//动态修改状态栏的颜色uni.setNavigationBarColor({frontColor:'#000000',backgroundColor:'#ff0000'})},​以......
  • [四、Xcode界面]20代码语法颜色样式的设置
    热烈欢迎,请直接点击!!!进入博主AppStore主页,下载使用各个作品!!!注:博主将坚持每月上线一个新app!!!......
  • 75. 颜色分类
    75.颜色分类给定一个包含红色、白色和蓝色、共 n个元素的数组 nums ,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。我们使用整数0......
  • VUE+ElementUI更改导航菜单选中背景颜色
    UE+ElementUI更改导航菜单选中背景颜色主要是设置.el-menu-item.is-active选择器的样式属性官方文档中提供background-color、text-color、active-text-color三种属性......