P1162 填涂颜色
原题链接 https://www.luogu.org/problemnew/show/P1162
一道很水很简单的搜索题,好吧我还是交了4次才过的......
说一下简单的思路:
首先输入n*n的矩阵,包含0和1,存入map数组里;
然后我们在开一个a数组,可以对它进行如下编译:如果map数组对应的元素为1,则a数组存1,其余的存0;
for(int i=;i<=n;i++)
for(int j=;j<=n;j++)
{
cin>>map[i][j];
if(map[i][j]==) a[i][j]=;
else a[i][j]=;
}
既然有且仅有一个环形闭合圈,那么我们不妨从头开始搜,搜到一个不为0的数(其实就是墙)就返回,否则就把它染成2(既然没碰到墙,那么肯定在圈外)
这样一来原先为0的位置就是环形圈内的元素,输出的时候把它改成2就好啦!
但是......如果一开始的map[1][1]就是1(墙)咋办.......我一开是也忘了这一点,因此WA了3个点.....
解决的办法就是:
既然我们开的是一个1~n的n*n矩阵,所以我们再从外面套上一环,即矩阵变为0~n+1的(n+1)*(n+1)矩阵
这样一来不管你是(1,1),(1,n),(n,1),(n,n)这些角上的元素还是魑魅魍魉妖魔都可以被遍历到啦qaq
好了,下面上代码:
#include<iostream>
#include<cstdio>
using namespace std;
int n,m,map[][],a[][];
int dx[]={,,,-},dy[]={,,-,};
void search(int x,int y)
{
int i;
if(x<||x>n+||y<||y>n+||a[x][y]!=) //如果跑出去了或撞墙则返回
return ;
a[x][y]=; //在环形圈外染成2做下标记
for(i=;i<;i++) //向四个方向遍历
search(x+dx[i],y+dy[i]);
}
int main()
{
cin>>n;
for(int i=;i<=n;i++)
for(int j=;j<=n;j++)
{
cin>>map[i][j];
if(map[i][j]==) a[i][j]=; //同样给一个变动数组a做上标记
else a[i][j]=;
}
search(,); //从(0,0)开始遍历
for(int i=;i<=n;i++)
{
for(int j=;j<=n;j++)
{
if(a[i][j]==) cout<<<<" "; //a数组中的0元素就是需要被染成2的地方
else cout<<map[i][j]<<" "; //其他照常输出
}
cout<<endl;
}
return ;
}
P1162 填涂颜色的更多相关文章
- luogu P1162 填涂颜色 x
P1162 填涂颜色 题目描述 由数字0 组成的方阵中,有一任意形状闭合圈,闭合圈由数字1构成,围圈时只走上下左右4个方向.现要求把闭合圈内的所有空间都填写成2.例如:6X6的方阵(n=6),涂色前和 ...
- 洛谷 P1162 填涂颜色 DFS
P1162 填涂颜色 https://www.luogu.com.cn/problem/P1162 qaq搜索好抽象啊,蒟蒻表示难以理解,搞半天才做出来一道题,很挫败www 思路 染色法.找墙壁外的连 ...
- 洛谷 P1162 填涂颜色
题目链接:https://www.luogu.org/problemnew/show/P1162 题目描述由数字0组成的方阵中,有一任意形状闭合圈,闭合圈由数字1构成,围圈时只走上下左右4个方向.现要 ...
- 洛谷 P1162 填涂颜色【DFS】
题目链接:https://www.luogu.org/problemnew/show/P1162 题目描述 由数字 0 组成的方阵中,有一任意形状闭合圈,闭合圈由数字 1 构成,围圈时只走上下左右 4 ...
- 洛谷P1162—填涂颜色
这应该是是第一次记录洛谷题库里的题目吧: 题目描述 由数字00组成的方阵中,有一任意形状闭合圈,闭合圈由数字11构成,围圈时只走上下左右44个方向.现要求把闭合圈内的所有空间都填写成22.例如:6 \ ...
- P1162 填涂颜色 洛谷
题目描述 由数字0 组成的方阵中,有一任意形状闭合圈,闭合圈由数字1构成,围圈时只走上下左右4个方向.现要求把闭合圈内的所有空间都填写成2.例如:6X6的方阵(n=6),涂色前和涂色后的方阵如下: 0 ...
- 洛谷—— P1162 填涂颜色
https://www.luogu.org/problem/show?pid=1162 题目描述 由数字0 组成的方阵中,有一任意形状闭合圈,闭合圈由数字1构成,围圈时只走上下左右4个方向.现要求把闭 ...
- 洛谷 P1162 填涂颜色题解
题目描述 由数字00组成的方阵中,有一任意形状闭合圈,闭合圈由数字11构成,围圈时只走上下左右44个方向.现要求把闭合圈内的所有空间都填写成22.例如:6 \times 66×6的方阵(n=6n=6) ...
- 洛谷P1162 填涂颜色【bfs】
题目链接:https://www.luogu.org/problemnew/show/P1162 题意: 有一个0和1组成的矩阵,一些1组成一个闭合圈,圈住一些0,现在要把被圈住的这些0变成2输出. ...
随机推荐
- sublime text3插件增强侧边栏的功能文件的复制粘贴
快捷键ctrl + shift +p 输入 install package 回车,调出插件搜索器, 在搜索栏中输入 SideBarEnhancements 回车安装插件. 在侧边栏中的各种操作功能增 ...
- CentOS 7.4 下 如何部署 AspNetCore 结合 consul
上篇我们讲到consul的概念,以及在WIN下如何使用:http://www.cnblogs.com/szlblog/p/9162557.html 步骤如下: 1.安装虚拟机VM 2.下载安装 Cen ...
- Java建造(Builder)模式
一.什么是建造模式: 建造模式可以将一个产品的内部表象与产品的生成过程分割开来,从而使一个建造过程生成具有不同内部表象的产品.客户端不需要知道产品内部的结构和生产过程. 二.建造模式的结构: Buil ...
- Ext JS中的typeOf
Ext JS中的typeOf:以字符串格式,返回给定变量的类型 其中对字符串对象.元素节点.文本节点.空白文本节点判断并不准确 测试代码如下: <!DOCTYPE HTML PUBLIC &qu ...
- QQ音乐vkey获取,更新播放url
QQ音乐接口播放经常换, 最开始 url: `http://ws.stream.qqmusic.qq.com/${musicData.songid}.m4a?fromtag=46` 然后 url:`h ...
- Sharepoint 2013搜索服务配置总结(实战)
分享人:广州华软 星尘 一. 前言 SharePoint 2013集成了Fast搜索,相对于以前版本搜索的配置有了一些改变,在安装部署Sharepoint 2013时可以选择默认创建搜索服务,但有时候 ...
- solr8.0 从数据库导入数据(三)
第一步:导入相关包: 在创建的核心目录下新建lib文件夹(如果有,无需建立),从Solr源码包的dist文件夹中导入两个solr-dataimporthandler包,以及一个mysql驱动包. 第二 ...
- Android远程桌面助手(B1309)
修改了窗口缩放的处理,支持Android Car等非常规分辨率的Android设备: 修改了获取Android端软件版本的方法,优化了APK的升级逻辑: 优化了远程输入法功能,支持利用PC端输入法快速 ...
- Java日期的一些基本处理
今天工作中用到一些日期的处理.这里做一点浅显的整理. 1.日期的加减: 日期加减一般用到Calendar这个类比较好.这样不用处理12月加一个月和28.30.31.加一天等问题 String last ...
- vsftpd.configro
mmp卸载了vsftpd后 配置文件没了 安装也没有 留个做备份 嘿嘿 原始的: # Please see vsftpd.conf. for all compiled in defaults. # # ...