uva 336
来源:互联网 发布:淘宝网衣服女装 编辑:程序博客网 时间:2024/06/03 20:04
#include<iostream>
#include<queue>
#include<algorithm>
#include<map>
#include<string.h>
#include<math.h>
#include<stdio.h>
#include <iomanip>
#include <stack>
#include <vector>
#include <sstream>
////////
using namespacestd;
int dx[] = { -1, -1, -1,0,0,1,1,1 };
int dy[] = { -1,0,1,-1,1,-1,0,1};
char pixels[40][40];
bool visited[40][40];
int Size;
typedef pair<int,int>p;
queue<p>que;
/////////
void bfs()
{
int x,y;
while(!que.empty())
{
p temp =que.front();
que.pop();
for(int i=0;i<8;i++)
{
x=temp.first+dx[i];
y=temp.second+dy[i];
if(0<=x && x<Size &&0<=y && y<Size && !visited[x][y]
&& pixels[x][y]=='1')
{
visited[x][y] =true;
que.push(p(x,y));
}
}
}
}
int main()
{
int i,j;
int image_number =1;
while(scanf("%d",&Size)==1)
{
while(!que.empty())
que.pop();
memset(visited,false,sizeof(visited));
memset(pixels,0,sizeof(pixels));
int count =0;
getchar();
for(i=0;i<Size;i++)
gets(pixels[i]);
for(i=0;i<Size;i++)
for(j=0;j<Size;j++)
{
if(pixels[i][j]=='1' && !visited[i][j])
{
visited[i][j] =true;
que.push(p(i,j));
bfs();
//for(int k=0;k<Size;k++)
// {
// for(int n=0;n<Size;n++)
// cout<<visited[k][n];
// cout<<endl;
//}
count++;
}
}
cout<<"Image number "<<image_number<<" contains "<<count<<" war eagles."<<endl;
image_number++;
}
}
- uva 336
- uva 336
- uva
- UVA
- UVA
- UVA
- uva
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- JFinal Web开发学习(五)注册界面和后端验证
- 二分图匹配——定义,经典模型以及简单的匈牙利算法
- C++解析json文件-VS2010中配置Jsoncpp
- 常用位操作的c++实现
- poj 2187
- uva 336
- angularjs 坑 小结
- CVPR 2016-10-10
- Linux 常用的命令
- 第64篇Chrome扩展蓝牙及USB开发(四)
- AVL树
- 国产经典神动画《哈哈镜花缘》每集解读剧评
- 对json传输的进一步优化
- 三种方法实现链表的插入