题目描述

在一个与世隔绝的岛屿上,有一个有趣的现象:同一个家族的人家总是相邻的(这里的相邻是指东南西北四个方向),不同的家族之间总会有河流或是山丘隔绝,但同一个家族的人不一定有相同姓氏。现在给你岛上的地图,求出岛上有多少个不同的家族。岛上的地图有n行,每行有若干列,每个格子中要么是“ ”,表示大海,要么是“*”,表示河流或山丘,要么是小写字母,表示一户人家的姓氏。

输入输出格式

输入格式:

第一行是个数字N,表示下面信息的行数。接下来是N行字符,每行由小写字母和*号组成,有些行的最前面也可能包含若干连续的空格,表示这些区域是大海,每一行最多不超过200个字符。

输出格式:

一个数字,表示家族数。

输入输出样例

输入样例#1:

  1. 4
  2. *zlw**pxh
  3. l*zlwk*hx*
  4. w*tyy**yyy
  5. zzl
输出样例#1:

  1. 3

说明

10%的数据,n≤1。 30%的数据,n≤10。 100%的数据,n≤100每一行最多不超过200个字符。

_NOI导刊2010普及(10)

题目大意:同细胞个数

题解:可恶的字符串输入,毁我青春浪费我时间...

scanf("%d\n",**)不对,scanf("%d",&x);getline(cin,s);A了。

debug时怀疑人生。

代码:

  1. #include<iostream>
  2. #include<cstdio>
  3. #include<cstring>
  4. using namespace std;
  5.  
  6. int n,ans,map[][];
  7. int mx[]={,,-,},
  8. my[]={-,,,};
  9. string s;
  10.  
  11. void dfs(int x,int y){
  12. for(int i=;i<;i++){
  13. int xx=x+mx[i],yy=y+my[i];
  14. if(map[xx][yy]==||xx<||yy<||yy>map[xx][]||xx>n)continue;
  15. map[xx][yy]=;
  16. dfs(xx,yy);
  17. }
  18. }
  19.  
  20. int main(){
  21. scanf("%d",&n);getline(cin,s);
  22. for(int i=;i<=n;i++){
  23. getline(cin,s);
  24. map[i][]=s.length();
  25. for(int j=;j<=map[i][];j++){
  26. if(s[j-]>='a'&&s[j-]<='z')
  27. map[i][j]=;
  28. }
  29. }
  30. for(int i=;i<=n;i++){
  31. for(int j=;j<=map[i][];j++){
  32. if(map[i][j]){
  33. map[i][j]=;ans++;
  34. dfs(i,j);
  35. }
  36. }
  37. }
  38. cout<<ans<<endl;
  39. return ;
  40. }

洛谷 P1767 家族_NOI导刊2010普及(10)的更多相关文章

  1. 洛谷——P1767 家族_NOI导刊2010普及(10)

    P1767 家族_NOI导刊2010普及(10) 题目描述 在一个与世隔绝的岛屿上,有一个有趣的现象:同一个家族的人家总是相邻的(这里的相邻是指东南西北四个方向),不同的家族之间总会有河流或是山丘隔绝 ...

  2. 洛谷 P1765 手机_NOI导刊2010普及(10)

    题目描述 一般的手机的键盘是这样的: 1 2 abc 3 def 4 ghi 5 jkl 6 mno 7 pqrs 8 tuv 9 wxyz * 0 # 要按出英文字母就必须要按数字键多下.例如要按出 ...

  3. 洛谷—— P1765 手机_NOI导刊2010普及(10)

    https://www.luogu.org/problem/show?pid=1765#sub 题目描述 一般的手机的键盘是这样的: 1 2 abc 3 def 4 ghi 5 jkl 6 mno 7 ...

  4. 洛谷P1765 手机_NOI导刊2010普及(10) 关于cin和getline的一些区别 以及一些STL

    一. cin>>s:cin>>是由两部分构成的,cin和>>,其中cin是输入流istream类的一个对象,隶属于iostream函数库而>>则是运算符 ...

  5. 洛谷 P1777 帮助_NOI导刊2010提高(03) 解题报告

    P1777 帮助_NOI导刊2010提高(03) 题目描述 Bubu的书架乱成一团了!帮他一下吧! 他的书架上一共有n本书.我们定义混乱值是连续相同高度书本的段数.例如,如果书的高度是30,30,31 ...

  6. 洛谷 P1769 淘汰赛制_NOI导刊2010提高(01)

    P1769 淘汰赛制_NOI导刊2010提高(01) 题目描述 淘汰赛制是一种极其残酷的比赛制度.2n名选手分别标号1,2,3,…,2^n-1,2^n,他们将要参加n轮的激烈角逐.每一轮中,将所有参加 ...

  7. 洛谷 P1801 黑匣子_NOI导刊2010提高(06)(未完)

    P1801 黑匣子_NOI导刊2010提高(06) 题目描述 Black Box是一种原始的数据库.它可以储存一个整数数组,还有一个特别的变量i.最开始的时候Black Box是空的.而i等于0.这个 ...

  8. [洛谷P1801]黑匣子_NOI导刊2010提高(06)

    题目大意:两个操作:向一个可重集中加入一个元素:询问第$k$大的数($k$为之前询问的个数加一) 题解:离散化,权值线段树直接查询 卡点:无 C++ Code: #include <cstdio ...

  9. 洛谷 P1801 黑匣子_NOI导刊2010提高(06)

    题目描述 Black Box是一种原始的数据库.它可以储存一个整数数组,还有一个特别的变量i.最开始的时候Black Box是空的.而i等于0.这个Black Box要处理一串命令. 命令只有两种: ...

随机推荐

  1. 【BZOJ3143】[Hnoi2013]游走 期望DP+高斯消元

    [BZOJ3143][Hnoi2013]游走 Description 一个无向连通图,顶点从1编号到N,边从1编号到M. 小Z在该图上进行随机游走,初始时小Z在1号顶点,每一步小Z以相等的概率随机选 ...

  2. Dire Wolf(区间DP)

    Dire Wolf Time Limit: 5000/5000 MS (Java/Others)    Memory Limit: 512000/512000 K (Java/Others)Total ...

  3. vue router-link子级返回父级页面

    vue-router嵌套路由,从二级路由跳转到一级路由时,间歇性导致一级路由重叠 解决方法: 1.使用this.$router.push跳转

  4. 第一课 第一个nodejs程序

    这就是我们的第一个程序了 在控制台会输出:hello 我们需要运行该文件 开始->运行 cmd 进入我们的程序目录 我的是D:/nodejs/hello.js 进入程序目录cd D:/nodej ...

  5. zookeepeer ID生成器 (一)

    目录 写在前面 1.1. ZK 的分布式命名服务 1.1.1. 分布式 ID 生成器的类型 UUID方案 1.1.2. ZK生成分布式ID 写在最后 疯狂创客圈 亿级流量 高并发IM 实战 系列 疯狂 ...

  6. flex (html弹性布局)

    flex是什么? 任何容器都可以指定为flex布局: .box{ display: flex;  /* 行内元素可以使用:inline-flex,webket内核浏览器必须 -webkit-flex ...

  7. Django继承HTML模板

    Django在渲染模板的过程中可以实现模板样式的继承,以减少重复的代码 1.extend继承 模板.html: 模板内容 {{% block name1 %}} {{% enfblock %}} #n ...

  8. windows下php升级到7.2

    1: 官网下载:https://windows.php.net/download#php-7.2

  9. QT设置TextEdit颜色

    //设置textEdit颜色 QPalette palette= ui->receiveTextEdit->palette(); palette.setColor(QPalette::Ba ...

  10. ICCV 2015 B-CNN细粒度分类

    哈哈,好久没写博客了....最近懒癌发作~~主要是因为心情不太好啊,做什么事情都不太顺心,不过已经过去啦.最近一直忙着公司的项目,想用这个网络,就给大家带来了的这篇文章.可能比较老,来自ICCV 20 ...