BFS 入门题目 洛谷 P1162 填涂颜色
2017-07-03 10:51
246 查看
#include<iostream>
#include<queue>
using namespace std;
int dir[4][2]={{0,1},{1,0},{0,-1},{-1,0}};
int n,t,a[51][51];
queue<int> qx,qy;
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
cin>>a[i][j];
}
}
qx.push(0);
qy.push(0);
while(!qx.empty())
{
int x=qx.front();
int y=qy.front();
for(int k=0;k<4;k++)//从0,0开始搜索
{
int dx=dir[k][0];
int dy=dir[k][1];
if (x+dx>=0 && x+dx<=n+1 && y+dy>=0 && y+dy<=n+1 && !a[x+dx][y+dy])
{
a[x+dx][y+dy]=2;//1外围的为0的全为2
qx.push(x+dx);
qy.push(y+dy);
}
}
qx.pop();
qy.pop();
}
for (int i=1; i<=n; i++)
{
for (int j=1; j<=n; j++)
{
cout<<2-a[i][j]<<' ';
}
cout<<endl;
}
return 0;
}
#include<queue>
using namespace std;
int dir[4][2]={{0,1},{1,0},{0,-1},{-1,0}};
int n,t,a[51][51];
queue<int> qx,qy;
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
cin>>a[i][j];
}
}
qx.push(0);
qy.push(0);
while(!qx.empty())
{
int x=qx.front();
int y=qy.front();
for(int k=0;k<4;k++)//从0,0开始搜索
{
int dx=dir[k][0];
int dy=dir[k][1];
if (x+dx>=0 && x+dx<=n+1 && y+dy>=0 && y+dy<=n+1 && !a[x+dx][y+dy])
{
a[x+dx][y+dy]=2;//1外围的为0的全为2
qx.push(x+dx);
qy.push(y+dy);
}
}
qx.pop();
qy.pop();
}
for (int i=1; i<=n; i++)
{
for (int j=1; j<=n; j++)
{
cout<<2-a[i][j]<<' ';
}
cout<<endl;
}
return 0;
}
相关文章推荐
- 洛谷 : P1162 填涂颜色【DFS||BFS】
- 【搜索】洛谷 P1162 填涂颜色
- 洛谷 18-03-13- P1162 填涂颜色
- 洛谷 P1162 填涂颜色
- P1162 填涂颜色 (bfs 水题)
- 洛谷 P1162 填涂颜色
- 洛谷—— P1162 填涂颜色
- (洛谷)【P1162】填涂颜色 [广度搜索]
- 洛谷 P1162 填涂颜色
- 洛谷p1162 填涂颜色
- 洛谷 1162——填涂颜色(广度优先搜索)
- P1162 填涂颜色
- P1162 填涂颜色
- P1162 填涂颜色
- 洛谷Oj-P1162 填涂颜色-广度优先搜索
- p1162 填涂颜色
- P1162 填涂颜色
- 最简单的BFS入门题目——迷宫的最短路径
- 填涂颜色-洛谷 1162
- P1162 填涂颜色