Luogu P1162填涂颜色 +BFS
来源:互联网 发布:网络产品价格的特点 编辑:程序博客网 时间:2024/05/01 20:43
题目大意
给出一个n*n的矩阵,有一堆“1”围住了“0”。把0转化成“2”输出。
分析
把外围的“0”全弄成“2”,然后每个数输出时-2
那么怎么转换呢?
这里就要用到一种叫做BFS(深搜)有趣算法了。
以下引用廖哥的话
毛主席说过:“星星之火,可以燎原。”那么BFS实际上就是一排排横着搜。
本题的话,开全局变量的数组(全是0)从(0,0)开始搜
为什么不从(1,1)搜?
考虑以下情况:
0 1 1 0
1 0 0 1
1 0 0 1
0 1 1 0
显然从(1,1)搜是不行的
代码
#include<bits/stdc++.h>using namespace std;int i,m,n,j,k;int a[40][40];inline void bfs(int x,int y){ if(x<0 || x>n+1 || y<0 || y>n+1 || a[x][y]==1 || a[x][y]==2)return; a[x][y]=2; bfs(x+1,y); bfs(x-1,y); bfs(x,y+1); bfs(x,y-1); return;}int main(){ cin>>n; for(i=1;i<=n;i++) for(j=1;j<=n;j++) scanf("%d",&a[i][j]); bfs(0,0); for(i=1;i<=n;i++){ cout<<2-a[i][1]; for(j=2;j<=n;j++) cout<<" "<<2-a[i][j]; cout<<endl; }//严格按照格式输出 return 0;}
0 0
- Luogu P1162填涂颜色 +BFS
- [LUOGU] P1162 填涂颜色
- [luogu]P1162填涂颜色
- P1162 填涂颜色
- P1162 填涂颜色
- P1162 填涂颜色
- P1162 填涂颜色
- P1162 填涂颜色
- P1162 填涂颜色
- P1162 填涂颜色
- BFS 入门题目 洛谷 P1162 填涂颜色
- 洛谷P1162 填涂颜色
- 洛谷 P1162 填涂颜色
- 洛谷P1162 填涂颜色
- 洛谷 P1162 填涂颜色
- 洛谷 P1162 填涂颜色
- 洛谷p1162 填涂颜色
- 洛谷OJ P1162填涂颜色
- 0228
- 现代操作系统---1.操作系统的结构
- 剑指offer编程
- Java8日期和时间API
- 单项链表 练习3.4 给定两个已排序的表求交集
- Luogu P1162填涂颜色 +BFS
- 代理模式
- 使用jfinal开发的web项目在liunx上部署
- 如何用十条命令在一分钟内检查Linux服务器性能
- POJ 3237 Tree (树链剖分)
- 06.SpringMVC 请求处理
- 【C++】学习笔记三十一——函数和数组
- linux笔记-系统修复
- g++编译连接命令简介