WOJ1167-Oil Detecting
来源:互联网 发布:安大略理工大学知乎 编辑:程序博客网 时间:2024/06/06 18:05
石油公司在某地开采石油,他们把地面(长方形)分成一个个的小正方形,然后逐个勘探,有的正方形探到了石油,而有的没有,如果有两个石油地是相连的(上下、左右、对角),则说明它们是同个石油点。
现在,公司已经把所有的勘探点都勘探好了,他们请你写个程序计算一下到底有多少个不同的石油点。
输入格式
第一个为两个整数r和c,表示地面的长和宽。下面为r行c列的字符矩阵,O表示该处有石油,X表示该处没有石油。1<= r <= 100, 1<=c<=100。若r = c = 0,则程序结束。
输出格式
对于每组测试数据,输出有多少个不同的石油点
样例输入
1 10XXOOXOXOOO3 3OXOXOXOXO0 0
样例输出
31
#include<iostream>#include<stdio.h>using namespace std;char arr[110][110];int r,c;void sarch(int m,int n){ if(m<r&&m>=0&&n<c&&n>=0){ if(arr[m][n]=='O'){ arr[m][n] = 'X'; sarch(m+1,n); sarch(m+1,n+1); sarch(m+1,n-1); sarch(m,n+1); sarch(m,n-1); sarch(m-1,n); sarch(m-1,n-1); sarch(m-1,n+1); } else return; } else return;}int main (){ int count,i,j; while(scanf("%d%d",&r,&c)==2&&r*c!=0){ count=0; for(i=0;i<r;++i) cin>>arr[i]; for (i=0;i<r;++i) for (j=0;j<c;++j){ if (arr[i][j]=='O'){ count ++; sarch(i,j); } } cout<<count<<endl; } return 0;}
阅读全文
0 0
- WOJ1167-Oil Detecting
- Detecting Types
- Detecting Windows Shutdown
- 第十章: Detecting Types
- Primitive Collision Detecting (1)
- Primitive Collision Detecting (2)
- Primitive Collision Detecting (3)
- Primitive Collision Detecting (4)
- Primitive Collision Detecting (5)
- Primitive Collision Detecting (6)
- Detecting duplicate Oracle indexes
- Detecting Memory Leak
- Detecting System Requirements()
- 8.1 Detecting Swipe Gestures
- 8.2 Detecting Rotation Gestures
- 8.5 Detecting Tap Gestures
- 8.6 Detecting Pinch Gestures
- Detecting Common Gestures
- sqlserver update或者Delete误操作恢复方法---【验证】
- Hbase + Spring Aop 配置Hbase链接的开启和关闭
- 三级联动
- 《重磅消息》深度强化学习入门及进阶课程第二期开课啦
- UVA11987:Almost Union-Find (并查集的删除)
- WOJ1167-Oil Detecting
- Toast之显示文本
- hdu 1181 并查集
- 小试4
- 检测动态table的行数,可判断非空
- bzoj1015 [JSOI2008]星球大战(离线操作+并查集)
- 【android】2、SharePreferences
- Android studio项目依赖导入
- jQuery插件之Autocomplete