八连块(类似水池数目(nyoj27),水池问题只有四个方向, 八连快有八个方向)
2013-11-16 20:50
260 查看
八连块 Time Limit:1 Ms| Memory Limit:128 MB Difficulty:1 Description 输入一个n*n(n最大为30)的黑白图像(1表示黑色,0表示白色),任务是统计其中八连块的个数。如果两个黑格子有公共边或者有公共顶点,就说它们属于同一个八连块。 如下图所示,八连块的个数为3。 100100 001010 000000 110000 111000 010100 Input 第一行输入一个n 表示图的大小 接下来n行 用来表示图的组成 Output 输出八连块的个数 Sample Input 6 100100 001010 000000 110000 111000 010100 Sample Output 3
代码:
#include <stdio.h> int a[30][30]; int num; int n; int movex[] = {1, 0, -1, 0, 1, -1, -1, 1}; int movey[] = {0, -1, 0, 1, -1, -1, 1, 1}; void dfs(int x, int y) { for(int i=0; i<8; i++) { int tx = x + movex[i]; int ty = y + movey[i]; if(tx>=0&&tx<n && ty>=0&&ty<n && a[tx][ty]) { a[tx][ty] = 0; dfs(tx, ty); } } } int main(void) { scanf("%d", &n); for(int i=0; i<n; i++) for(int j=0; j<n; j++) scanf("%1d", &a[i][j]); num = 0; for(int i=0; i<n; i++) for(int j=0; j<n; j++) { if(a[i][j] == 1) { num++; dfs(i, j); } } printf("%d\n", num); return 0; }
相关文章推荐
- nyoj27 水池数目
- poj 2386 poj1562 poj1979 图的遍历 八个方向和四个方向 深搜
- ZOJ1037 题目大意就是 计算在这个国家中所有城市的旅行售货员问题的最短长度,每个城市位于矩形网格的点上,方向有八个,单位长度为1
- CocosCreator知识库<一>_JavaScript的虚拟摇杆的通用模板_全方向_八个方向_四个方向
- 你真的了解iOS打包么?下面的四个问题,只有20%的人能回答出来。
- NYOJ27 水池数目(深搜DFS)
- 下棋问题 八个方向判断 模拟求解
- NYOJ27 水池数目
- 迷宫问题(八个方向寻找)DFS
- NYOJ27 水池数目
- NYOJ27 水池数目 BFS
- 水池数目(nyoj27)(BFS)
- nyoj27 水池数目
- 在Vmware中克隆虚拟机后出现只有本地ip的问题
- 已知: 每个飞机只有一个油箱, 飞机之间可以相互加油(注意是相互,没有加油机) 一箱油可供一架飞机绕地球飞半圈,问题:为使至少一架飞机绕地球一圈回到起飞时的飞机
- 深度优先搜索+动态规划——01背包类似问题
- 在4x4的棋盘上摆满了黑白棋子,黑白两色的位置和数目随机其中左上角坐标为(1,1),右下角坐标为(4,4),现在依次有一些翻转操作,要对一些给定支点坐标为中心的上下左右四个棋子的颜色进行翻转,请计算出翻转后的棋盘颜色。
- 水池数目
- Hadoop-2.2.0集群部署时live nodes数目不对的问题
- 14. 类似正则表达式的字符处理问题