P1162填涂颜色
这还是一个搜索题,难度较低,但我提交第三次才AC..
观察0地图左上角的上面和左面都是一,所以先把他找粗来,然后设成start,然后dfs找到与他联通的块,涂成2即可。再说一下自己犯的低级错误:1.当找到坐上角时,必须先break掉里面的for,然后bool变量必须放在第一个for的里面,但我放在了上面,,,2.找到开始坐标后先打上标记。3.忘记加dfs(tx,ty)了
1.预处理正确性需要保证,低级错误要手动避免
2.再去练习难度较大的搜索题目
3.寻找好条件的客观规律,然后去解决
4.提交的时候别自信满满,静下心来想一想,noip上是黑盒!
代码
#include<iostream>
#include<cstdio>
#include<string>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;
int n;
int mp[][],book[][];
int dx[]={,-,,};
int dy[]={,,-,};
int startx,starty;
bool flag=true;
void dfs(int x,int y){
for(int k=;k<=;k++){
int tx=dx[k]+x;
int ty=dy[k]+y;
if(mp[tx][ty]==&&tx>=&&ty>=&&tx<=n&&ty<=n&&book[tx][ty]==){
book[tx][ty]=;
mp[tx][ty]=;
dfs(tx,ty);
}
else continue;
}
return;
}
int main(){
scanf("%d",&n);
for(int i=;i<=n;i++){
for(int j=;j<=n;j++){
scanf("%d",&mp[i][j]);
book[i][j]=;
}
}
mp[][]=;
mp[][]=;
for(int i=;i<=n;i++){
if(flag==true){
for(int j=;j<=n;j++){
if(mp[i][j]==){
if(mp[i-][j]==&&mp[i][j-]==){
startx=i;
starty=j;
flag=false;
break;
}
}
}
}
}
//cout<<endl;
//cout<<startx<<starty;
dfs(startx,starty);
mp[startx][starty]=;
for(int i=;i<=n;i++){
for(int j=;j<=n;j++){
cout<<mp[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 填涂颜色
原题链接 https://www.luogu.org/problemnew/show/P1162 一道很水很简单的搜索题,好吧我还是交了4次才过的...... 说一下简单的思路: 首先输入n*n的矩阵 ...
- 洛谷P1162 填涂颜色【bfs】
题目链接:https://www.luogu.org/problemnew/show/P1162 题意: 有一个0和1组成的矩阵,一些1组成一个闭合圈,圈住一些0,现在要把被圈住的这些0变成2输出. ...
随机推荐
- jvm——内存模型
这是我理解的jvm内存模型,这一整块可以简单理解为虚拟内存空间: jvm代码.jvm数据:是运行jvm所用到的代码和数据,并不是我们自己编程得到的代码和数据 direct memory:主要是NIO在 ...
- 【shell】sed处理多行合并
有这么一个题 文件格式 table=t1 name owner address table=t2 id text col1 comment col5 table=t3 prod_name price ...
- C#Regex中replace方法的替换自定义小数点后的内容
$1应该就是引用了这个组,不用这个会匹配不到 /// <summary> /// 截取 /// </summary> /// <param name="n&qu ...
- GO语言学习笔记5-defer的使用
1. 什么是defer defer是Go语言提供的一种用于注册延迟调用的机制:让函数或语句可以在当前函数执行完毕后(包括通过return正常结束或者panic导致的异常结束)执行. 2. defer的 ...
- Elasticsearch:aggregation介绍
聚合(aggregation)功能集是整个Elasticsearch产品中最令人兴奋和有益的功能之一,主要是因为它提供了一个非常有吸引力对之前的facets的替代. 在本教程中,我们将解释Elasti ...
- java中System类
System作为系统类,在JDK的java.lang包中,可见它也是一种java的核心语言特性.System类的构造器由private修饰,不允许被实例化.因此,类中的方法也都是static修饰的静态 ...
- ModelSerializer 使用知识点_serializers.SerializerMethodField()使用场景总结
serializers.SerializerMethodField和钩子方法结合,可以实现对ModelSerializer类的一些字段进行二次加工,返回,如下:1.对以ModelSerializer的 ...
- zabbix配置通过远程命令来发送邮件
1.安装好zabbix后,在/var/log/zabbix可以查看日志. 2.主机通过zabbix-get检查 yum install zabbix-get -y zabbix-get -s 客户主 ...
- Spring Boot教程(二十一)开发Web应用(2)
在完成配置之后,举一个简单的例子,在快速入门工程的基础上,举一个简单的示例来通过Thymeleaf渲染一个页面. @Controller public class HelloController { ...
- android 3.0 ationbar使用总结
1,ationbar的基本讲解 http://www.apkbus.com/forum.php?mod=viewthread&tid=125536 仅仅需要根据需求写出一个menu资源文件 2 ...