• 洛谷P1162 填涂颜色


    题目描述

    由数字0 组成的方阵中,有一任意形状闭合圈,闭合圈由数字1构成,围圈时只走上下左右4个方向。现要求把闭合圈内的所有空间都填写成2.例如:6X6的方阵(n=6),涂色前和涂色后的方阵如下:

    0 0 0 0 0 0 0 0 0 0 0 0

    0 0 1 1 1 1 0 0 1 1 1 1

    0 1 1 0 0 1 0 1 1 2 2 1

    1 1 0 0 0 1 1 1 2 2 2 1

    1 0 0 0 0 1 1 2 2 2 2 1

    1 1 1 1 1 1 1 1 1 1 1 1

    输入输出格式

    输入格式:

    每组测试数据第一行一个整数:n。其中n(1<=n<=30)

    接下来n行,由0和1组成的nXn的方阵。

    方阵内只有一个闭合圈,圈内至少有一个0。

    //感谢黄小U饮品指出本题数据和数据格式不一样. 已修改(输入格式)

    输出格式:

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

    输入输出样例

    输入样例#1:
    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
    
    输出样例#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
    

    说明

    1<=n<=30

    屠龙宝刀点击就送

    #include <cstdio>
    
    int fx[5]={1,-1,0,0},fy[5]={0,0,-1,1};
    int n,rse[31][31],i,j;
    int main()
    {
        scanf("%d",&n);
        for(i=0;i<n;++i)
        {
            for(j=0;j<n;++j)
            scanf("%d",&rse[i][j]);
        }
        for(i=0;i<n;++i)
        {
            for(j=0;j<n;++j)
            {
                if(!rse[i][j])
                {
                    int x=i,y=j;
                    bool f1=1,f2=1,f3=1,f4=1;
                    while(rse[x][y]!=1){x=x+fx[0];y=y+fy[0];if(x<0||x>=n||y<0||y>=n) {f1=0;break;}}
                    x=i,y=j;
                    while(rse[x][y]!=1){x=x+fx[1];y=y+fy[1];if(x<0||x>=n||y<0||y>=n) {f2=0;break;}}
                    x=i,y=j;
                    while(rse[x][y]!=1){x=x+fx[2];y=y+fy[2];if(x<0||x>=n||y<0||y>=n) {f3=0;break;}}
                    x=i,y=j;
                    while(rse[x][y]!=1){x=x+fx[3];y=y+fy[3];if(x<0||x>=n||y<0||y>=n) {f4=0;break;}}
                    if(f1&&f2&&f3&&f4)
                    rse[i][j]=2;
                }
            }
        }
        for(i=0;i<n;++i)
        {
            for(j=0;j<n;++j)
            printf("%d ",rse[i][j]);
            printf("
    ");
        }
        return 0;
    }
    我们都在命运之湖上荡舟划桨,波浪起伏着而我们无法逃脱孤航。但是假使我们迷失了方向,波浪将指引我们穿越另一天的曙光。
  • 相关阅读:
    RabbitMQ安装
    Redis安装
    spring boot 与 vue 配置 https
    JAVA 注解
    Java 获取两个日期之间的所有日期
    数组排序
    el-table表格高度自适应
    Windows使用Nexus搭建Maven私服
    SpringCloud 整合 Python
    SpringCloud 整合 Python
  • 原文地址:https://www.cnblogs.com/ruojisun/p/6498316.html
Copyright © 2020-2023  润新知