AOJ0118 Property Distribution 搜索
来源:互联网 发布:网络直播培训机构 编辑:程序博客网 时间:2024/06/05 02:04
第一次做AOJ的题目,给个纪念先~http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0118
题意:题意:在H * W的矩形果园里有苹果、梨、蜜柑三种果树, 相邻(上下左右)的同种果树属于同一个区域,给出果园的果树分布,求总共有多少个区域。
(原题的样图中苹果为リ,梨为カ,蜜柑为ミ, 图中共10个区域)
输入:多组数据,每组数据第一行为两个整数H、W(H <= 100, W <= 100), H =0 且 W = 0代表输入结束。以下H行W列表示果园的果树分布, 苹果是@,梨是#, 蜜柑是*。
输出:对于每组数据,输出其区域的个数。
题解:搜索。。将搜完的地方用“.”或者其他什么字符表示。
#include<iostream>#include<cstring>#include<cstdlib>#include<cstdio>#include<stack>using namespace std;int n,m;int f[4][2]={0,1,1,0,0,-1,-1,0};char a[101][101];void dfs(int x,int y,char c){ for(int i=0;i<4;i++) { int nx=x+f[i][0]; int ny=y+f[i][1]; if(nx<=n&&ny<=m&&nx>0&&ny>0&&a[nx][ny]==c) { a[nx][ny]='.'; dfs(nx,ny,c); } }}int main(){ while(cin>>n>>m) { int ans=0; if(n == 0&&m == 0) break; for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) cin>>a[i][j]; for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) { if(a[i][j]!='.') { ans++; dfs(i,j,a[i][j]); } } cout<<ans<<endl; }}
- AOJ0118 Property Distribution 搜索
- 【暑假复习】【搜索】AOJ0118:Property Distribution
- aoj0118-Property Distribution
- AOJ0118 Property Distribution【DFS】
- AOJ0118 Property Distribution(DFS)
- AOJ0118 Property Distribution 裸dfs
- aoj0118 Property Distribution(dfs)
- aoj0118 Property Distribution 暴力dfs
- AOJ0118——Property Distribution(DFS)
- AOJ 0118 Property Distribution {深度优先搜索}
- Property Distribution(AOJ 0118)深度优先搜索
- Aizu-0118 Property Distribution
- AOJ--0118 Property Distribution
- Property Distribution Aizu
- AOJ 0118 Property Distribution (DFS)
- AOJ 0118 Property Distribution (BFS)
- AOJ 0118 Property Distribution 题解
- [DFS] AOJ 0118 Property Distribution
- 机器学习 -- Deep Learning
- 过TP保护与解除游戏驱动保护
- Chapter 2, Exercise 2.3-7
- 查找链表中倒数第k个结点
- POJ 1840 Eqs
- AOJ0118 Property Distribution 搜索
- iebook模板制作器与iebook模…
- 十月新疆:禾木
- 阿里Oracle DBA 笔试题(基础概念类)
- Oracle11gR2安装部署
- 分享视频:视频:英国公开大学&nbs…
- 查韦斯:天使还是魔鬼?
- JAVA为什么要配置环境变量,…
- tomcat7.0.2的环境配置