NYOJ-水池数目(bfs)
水池数目
题目描述:
南阳理工学院校园里有一些小河和一些湖泊,现在,我们把它们通一看成水池,假设有一张我们学校的某处的地图,这个地图上仅标识了此处是否是水池,现在,你的任务来了,请用计算机算出该地图中共有几个水池。
输入描述:
第一行输入一个整数N,表示共有N组测试数据
每一组数据都是先输入该地图的行数m(0<m<100)与列数n(0<n<100),然后,输入接下来的m行每行输入n个数,表示此处有水还是没水(1表示此处是水池,0表示此处是地面)
输出描述:
输出该地图中水池的个数。
要注意,每个水池的旁边(上下左右四个位置)如果还是水池的话的话,它们可以看做是同一个水池。
样例输入:
2
3 4
1 0 0 0
0 0 1 1
1 1 1 0
5 5
1 1 1 1 0
0 0 1 0 1
0 0 0 0 0
1 1 1 0 0
0 0 1 1 1
样例输出:
2
3
解题思路:
这是个bfs模板,就是看有多少片1
程序代码:
#include<stdio.h>
#include<queue>
using namespace std;
struct node{int x;int y;
};
int m,n;
int a[110][110];
int bfs(int x,int y);
int main()
{int T,i,j,sum;scanf("%d",&T);while(T--){scanf("%d%d",&m,&n);for(i=0;i<m;i++)for(j=0;j<n;j++)scanf("%d",&a[i][j]);sum=0;for(i=0;i<m;i++)for(j=0;j<n;j++)if(a[i][j]==1){sum++;bfs(i,j);}printf("%d\n",sum);}return 0;
}
int bfs(int x,int y)
{int i;int next[4][2]={0,1,1,0,0,-1,-1,0};queue<node>q;node A,B;A.x=x;A.y=y;q.push(A);while(!q.empty()){A=q.front();q.pop();for(i=0;i<4;i++){B.x=A.x+next[i][0];B.y=A.y+next[i][1];if(B.x<0||B.y<0||B.x>m-1||B.y>n-1)continue;if(a[B.x][B.y]==1){a[B.x][B.y]=0;q.push(B);}}}
}
NYOJ-水池数目(bfs)相关推荐
- nyoj27 水池数目 BFS
#include<stdio.h> #include<string.h> int mat[101][101]; int a[4]={1,0,-1,0}; int b[4]={0 ...
- nyoj27 水池数目
水池数目 时间限制: 3000 ms | 内存限制: 65535 KB 难度: 4 描述 南阳理工学院校园里有一些小河和一些湖泊,现在,我们把它们通一看成水池,假设有一张我们学校的某处的地图,这个 ...
- nyist 27 水池数目(dfs搜索)
水池数目 时间限制: 3000 ms | 内存限制: 65535 KB 难度: 4 描述 南阳理工学院校园里有一些小河和一些湖泊,现在,我们把它们通一看成水池,假设有一张我们学校的某处的地图 ...
- java水池,水池数目 dfs - 阿豪boy的个人空间 - OSCHINA - 中文开源技术交流社区
上一篇: 差值 水池数目 时间限制:3000 ms | 内存限制:65535 KB 难度:4 输入 第一行输入一个整数N,表示共有N组测试数据 每一组数据都是先输入该地图的行数m(0 输出 输出该 ...
- Nyoj 27 水池数目
跟poj1562相当类似! 题目来源:http://acm.nyist.net/JudgeOnline/problem.php?pid=27 #include <iostream> #in ...
- NYOJ(21),BFS,三个水杯
题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=21 BFS判环,vis标记状态即可. #include <stdio.h> # ...
- 水池数目---深搜思想
1 //水池个数 深搜思想 2 /*#include<stdio.h> 3 int a[105][105],m,n; 4 void DFS(int x,int y) 5 { 6 if(x& ...
- nyoj58 水池数目
几个月前ac的,今天再次写,发现很多细节任然把握不好,总结到了学过的东西真的要多看,不然忘记的真的会很多的,同时发现自己写的代码真的烂到极点了,加油: bfs: #include<iostrea ...
- NYOJ-水池数目(dfs)
水池数目 描述: 南阳理工学院校园里有一些小河和一些湖泊,现在,我们把它们通一看成水池,假设有一张我们学校的某处的地图,这个地图上仅标识了此处是否是水池,现在,你的任务来了,请用计算机算出该地图中共有 ...
最新文章
- java qt jni_java JNI 实现原理 (二) Linux 下如何 load JNILibrary
- python 预编译命令_Python子进程调用预编译j
- [zz]为 Lua 绑定 C/C++ 对象
- 【深度学习】Tensorflow的基本操作
- 【线性代数本质】2:线性组合和线性相关和线性无关以及张成的空间
- Android源码之路(二、AsyncTask)
- spring boot部署实战
- ColorPix——到目前为止最好用的屏幕取色器
- 三星手机刷机后显示无服务器,三星Odin刷机工具连接不上_Odin工具识别不了手机的问题...
- 使用百度的地图生成器部署到https域名
- winrar命令行加压解密
- 51单片机LCD1602液晶屏显示方法
- 「Python 网络自动化」Nornir—— Inventory(主机清单)介绍
- Netty 学习笔记(已完结)
- 80后男人的脱单技巧
- 刚开始投资黄金理财,怎么扩大自己的小金库
- android 2k屏分辨率,2K、4K、8K分辨率屏幕有用吗?看看它们怎么说!
- 云原生系列 六【轻松入门容器基础操作】
- Azure 媒体服务可将优质内容传输至 Apple TV
- 重贴:MFC类中获得其它类指针 (转)