Time limit1000 ms

Memory limit131072 kB

タナカ氏が HW アールの果樹園を残して亡くなりました。果樹園は東西南北方向に H × Wの区画に分けられ、区画ごとにリンゴ、カキ、ミカンが植えられています。タナカ氏はこんな遺言を残していました。

果樹園は区画単位でできるだけ多くの血縁者に分けること。ただし、ある区画の東西南北どれかの方向にとなりあう区画に同じ種類の果物が植えられていた場合は、区画の境界が分からないのでそれらは 1 つの大きな区画として扱うこと。

例えば次のような 3 × 10 の区画であれば ('リ'はリンゴ、'カ'はカキ、'ミ'はミカンを表す)

同じ樹がある区画の間の境界を消すと次のようになり、

結局 10 個の区画、つまり 10 人で分けられることになります。

雪が降って区画の境界が見えなくなる前に分配を終えなくてはなりません。あなたの仕事は果樹園の地図をもとに分配する区画の数を決めることです。

果樹園の地図を読み込み、分配を受けられる血縁者の人数を出力するプログラムを作成してください。

Input

複数のデータセットが与えられます。各データセットは空白で区切られた HW (H, W ≤ 100) を含む行から始まり、続いて H × W の文字からなる H 行の文字列が与えられます。この文字列には、リンゴを表す '@'、カキを表す '#'、ミカンを表す '*'、の 3 文字しか現れません。

入力はゼロが2つの行で終わります。データセットの数は 20 を超えません。

Output

各データセットごとに、分配を受ける人数を1行に出力してください。

Sample Input

10 10
####*****@
@#@@@@#*#*
@##***@@@*
#****#*@**
##@*#@@*##
*@@@@*@@@#
***#@*@##*
*@@@*@@##@
*@*#*@##**
@****#@@#@
0 0

Output for the Sample Input

33
题意 一个大方格被分成几个区域,和水洼差不多
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <queue> using namespace std;
#define PI 3.14159265358979323846264338327950
#define INF 0x3f3f3f3f3f3f3f3f; char a[][],ch;
int n,m;
int dx[]={,,,-};
int dy[]={,,-,};
int ans; void dfs(int x,int y)
{
if(x< || y< || x>n || y>m)
return ;
if(a[x][y]!=ch)
return ;
a[x][y]='.';
for(int i=;i<;i++)
dfs(x+dx[i],y+dy[i]);
} int main()
{
while(scanf("%d %d",&n,&m) && (n||m))
{
int i,j;
for( i=;i<=n;i++)
for( j=;j<=m;j++)
cin>>a[i][j];
ans=;
for(i=;i<=n;i++)
for(j=;j<=m;j++)
{
if(a[i][j]=='.')
continue;
ch=a[i][j];
dfs(i,j);
ans++;
}
printf("%d\n",ans);
} }

最新文章

  1. 洛谷P2409 Y的积木
  2. 初步理解JNDI
  3. Linux查看可执行程序所在路径
  4. 优雅地在markdown插入图片
  5. C#: .net序列化及反序列化 [XmlElement(“节点名称”)]
  6. HDU 4825 Xor Sum(二进制的字典树,数组模拟)
  7. 利用shell脚本统计文件中出现次数最多的IP
  8. 十个免费的Web压力测试工具
  9. QT皮肤系统的动态切换
  10. 封装cookie组件
  11. 从《海贼王》的视角走进BAT的世界(百度/阿里/腾讯)
  12. Cookie中的HttpOnly详解
  13. webview的javascript与Native code交互
  14. [Python]循环嵌套nested loop-练习题
  15. CSS3阴影 box-shadow的使用总结
  16. 如何使用js改变HTML中title里面固定的文字
  17. Java中static与final
  18. JavaScript闭包函数&amp;箭头函数调用与执行
  19. Java笔记一JAVA安装环境变量配置
  20. jquery的call()和apply()方法

热门文章

  1. spring cloud 测试的时候报 BeanCreationNotAllowedException: Error creating bean with name &#39;eurekaAutoServiceRegistration&#39; 但能正确跑完测试方法
  2. jQuery的一些备忘
  3. SQL概念及DDL语句
  4. java的三大特性之一封装概述
  5. Python一个有意思的地方:reduce、map、filter
  6. sqlserver 查询某表的所有列名
  7. hdu 3861 The King’s Problem
  8. UVA 10537 Toll! Revisited (逆推,最短路)
  9. Android(java)学习笔记112:Activity中的onCreate()方法分析
  10. Hybrid App开发之Html基本标签使用