aoj0118
一、题意:有三种水果分别用,'@','*','#'三种符号表示,上下左右相连的同种水果被看做是一个区域,问一共有多少个区域
二、思路:用dfs去标记相连区域,然后遍历每个没有被标记的位置进行dfs
三、代码:
#include"iostream"
#include"stdio.h"
#include"vector"
using namespace std; const int MAXN=105; char farm[MAXN][MAXN];
int m,n,cnt; bool IsEdge(int x,int y)
{
if(x>=0&&x<m&&y>=0&&y<n)
return true;
return false;
} bool IsSame(int x,int y,char tree)
{
if(farm[x][y]==tree)
return true;
return false;
} void Dfs(int x,int y,char tree)
{
int dir[]={0,1,0,-1,-1,0,1,0};
for(int i=0;i<8;i+=2)
{
int dx=x+dir[i];
int dy=y+dir[i+1];
if(IsEdge(dx,dy)&&IsSame(dx,dy,tree))
{
farm[dx][dy]='-';
Dfs(dx,dy,tree);
}
}
} int main()
{
while(cin>>m>>n,m&&n)
{
for(int i=0;i<m;i++)
{
cin>>farm[i];
}
cnt=0;
for(int i=0;i<m;i++)
{
for(int j=0;j<n;j++)
{
if(farm[i][j]!='-')
{
cnt++;
char tree=farm[i][j];
farm[i][j]='-';
Dfs(i,j,tree);
}
}
}
cout<<cnt<<endl;
}
return 0;
}
aoj0118的更多相关文章
- 《挑战程序设计竞赛》2.1 深度优先搜索 POJ2386 POJ1979 AOJ0118 AOJ0033 POJ3009
POJ2386 Lake Counting Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 25366 Accepted: ...
- aoj-0118 property distribution(搜索)
Time limit1000 ms Memory limit131072 kB タナカ氏が HW アールの果樹園を残して亡くなりました.果樹園は東西南北方向に H × Wの区画に分けられ.区画ごとにリ ...
- 算法总结—深度优先搜索DFS
深度优先搜索(DFS) 往往利用递归函数实现(隐式地使用栈). 深度优先从最开始的状态出发,遍历所有可以到达的状态.由此可以对所有的状态进行操作,或列举出所有的状态. 1.poj2386 Lake C ...
随机推荐
- ofbiz
http://www.cnblogs.com/Ivan-j2ee/category/404613.html 本类别主要收集一些关于ofbiz的技术文档,包括一些原创文档
- 修改laravel中的pagination的样式
运行如下命令,拷贝出pagination样式到public/vendor目录下, 然后在pagination实例上调用links(‘传路径’)方法 使用起来非常方便,同时也可以自定义样式
- Entity Framework 6.0 Tutorials(1):Introduction
以下系统文章为EF6.0知识的介绍,本章是第一篇 原文地址:http://www.entityframeworktutorial.net/entityframework6/introduction.a ...
- 【转】Android Android属性动画深入分析
转载请注明出处:http://blog.csdn.net/singwhatiwanna/article/details/17841165 开篇 像设计模式一样,我们也提出一个问题来引出我们的内容. 问 ...
- 使用 Windows Phone 8 文件和 URI 关联的自动启动应用
更详细,猛撸这里:http://msdn.microsoft.com/zh-cn/library/windowsphone/develop/jj206987(v=vs.105).aspx 在WMApp ...
- Oracle动态执行表不可访问
在scott 用户下,执行查询语句是出现"Oracle动态执行表不可访问" 经查,是因为用户权限不够所致,修改scott用户权限语句如下: grant select on V_$s ...
- 如何在ubuntu下使用samba创建共享
快速简单的创建共享,比网上那些乱七八糟过时的文档强太多 原文地址: https://help.ubuntu.com/community/How%20to%20Create%20a%20Network% ...
- Promise超时重新请求
export default function (promiseProducer, params, interval, attemptTimes) { interval = typeof interv ...
- 手动给kvm虚机挂载lvm卷
1.查看计算节点上虚机挂载的卷 [root@xgto01n010243186070 ~]# virsh domblklist instance- Target Source ------------- ...
- 【leetcode 94. 二叉树的中序遍历】解题报告
前往二叉树的:前序,中序,后序 遍历算法 方法一:递归 vector<int> res; vector<int> inorderTraversal(TreeNode* root ...