家族

jzoj 1985

解题思路:

在一个只含空格,‘*’号和小写字母的图上,问有多少个连在一起(上下左右四个方向)的小写字母块

输入样例

4
*zlw**pxh
l*zlwk*hx*
w*tyy**yyyzzl

输出样例

3

数据范围

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

解题思路:

直接dfs搜索,找到一个就用p[i][j]p[i][j]p[i][j]记录下来

代码:

#include<cstdio>
#include<string>
#include<cstring>
#include<iostream>
using namespace std;
const int dx[4]={1,0,-1,0};
const int dy[4]={0,1,0,-1};
int n,ans,len[250],p[250][250];
char c,a[250][250];
void dfs(int x,int y)
{p[x][y]=1;for (int i=0;i<4;++i)if (!p[x+dx[i]][y+dy[i]]&&a[x+dx[i]][y+dy[i]]>='a'&&a[x+dx[i]][y+dy[i]]<='z')//可以继续dfs的前提dfs(x+dx[i],y+dy[i]);
}
int main()
{scanf("%d",&n);for (int i=1;i<=n;++i){while((c<'a'||c>'z')&&c!=' '&&c!='*') c=getchar();//不符合输入的排除while(c>='a'&&c<='z'||c==' '||c=='*')//符合的a[i][++len[i]]=c,c=getchar();//记录下来}for (int i=1;i<=n;++i)for (int j=1;j<=len[i];++j)if (!p[i][j]&&a[i][j]>='a'&&a[i][j]<='z'){ans++;dfs(i,j);//dfs}printf("%d",ans);return 0;
}

【dfs】家族(jzoj 1985)相关推荐

  1. 从零学Linux第一章——操作系统演变及历史介绍

    操作系统演变及历史介绍 操作系统的目标 方便:使计算机系统易于使用 有效:以更有效的方式使用计算机系统资源 扩展:方便用户有效开发.测试和引进新功能 操作系统的功用: 进程管理/内存管理/文件 ...

  2. 大智若鱼:《Big Fish》

    外文名:Big Fish 国家:美国 出品年代:2003 导演:蒂姆·伯顿 Tim Burton(<剪刀手爱德华>.<人猿猩球>.<断头谷>) 演员:艾伯特·菲尼 ...

  3. 【dfs】无穷迷宫(jzoj 3924)

    无穷迷宫 jzoj 3924 题目大意 有一个n*m的迷宫,有墙(#),路(.),和你的位置(S),这个迷宫会复制无数份拼在一起,问你能不能不停地走下去 输入样例 2 5 4 ##.# ##S# #. ...

  4. 【dfs】树(jzoj 2753)

    树 jzoj 2753 题目大意: 给你一棵树,每一个点都一个值,现在问你有多少条路径可以满足以下条件: 1.方向都是向下 2.路径上的点的值总和为S 输入样例 3 3 1 2 3 1 2 1 3 输 ...

  5. 【dfs】通行证(jzoj 2013)

    通行证 jzoj 2013 题目大意: 有一个图,走某一条路需要某个通行证(数据给出所有可选择的),现在要从某个点到另一个点,问最少要多少个通行证 样例输入 3 3 3 0 2 0 0 2 1 1 2 ...

  6. nssl1323,jzoj(初中)2107-交流【dfs,容斥,组合数】

    正题 题目大意 对于mmm个字符串,一些地方是???表示可以填任意字符. 每一个目标串要满足至少kkk个串. 求方案总数. 解题思路 首先暴力搜索一些串选择或不选择,然后容斥. 选择之后我们可以得出一 ...

  7. nssl1321,jzoj(初中)2106-买门票【dfs,暴力,字符串】

    正题 题目大意 给定一些字母,用字母组成一个单词要求满足 从小到大 有1个元音字母 有2个辅音字母 长度为LLL 输出字典序最小的250002500025000个. 解题思路 暴力搜索时间复杂度 O( ...

  8. nssl1320,jzoj(初中)2108-买装备【dfs,水题】

    正题 题目大意 nnn个物品有ai,bi,via_i,b_i,v_iai​,bi​,vi​,要求 选择若干个物品使得aia_iai​之和大于AAA,bib_ibi​之和大于BBB,viv_ivi​之和 ...

  9. 【dfs】病毒(jzoj 1284)

    病毒 题目大意: 有n(1<=n<=1000)头奶牛,d(1<=d<=15)种病毒,每头奶牛身上有可能有很多种病毒病毒,每头奶牛挤出的牛奶是混在一起放的,问最多可以挤多少头奶牛 ...

最新文章

  1. Leetcode 剑指 Offer 09. 用两个栈实现队列 (每日一题 20210915)
  2. 介绍 Java 的内存泄漏
  3. 编写python扩展模块_《深度剖析CPython解释器》27. 使用Python/C API编写扩展模块:编写扩展模块的整体流程...
  4. 《BI那点儿事》数据流转换——透视
  5. antd vue form表单 子组件调用父组件的方法没反应_前几天推了Vue,今天给React疯狂打call...
  6. 几十种编程语言说Hello World
  7. 计算机辅助绘图包括,计算机辅助绘图实用教程
  8. MapReduce的核心资料索引
  9. goto解密PHP源码解密程序源码下载
  10. 【滤镜算法】低多边形风格介绍及Matlab实现
  11. 将10件商品的英文名称存储在数组中,输出名称的第3个字符是‘b‘的所有商品英文名称;再输出名称的长度小于6个字符的商品英文名称。
  12. C#通过调用WinApi打印PDF文档类,服务器PDF打印、IIS PDF打印
  13. 夜了,为什么还不想睡
  14. 晶振(crystal)与晶振(oscillator)的区别
  15. Linux被熊孩子攻破了?
  16. vue中如何使用富文本编辑器(TinyMce)
  17. 简单选择排序 ← vector实现
  18. 【JavaScript】回调地狱、Promise
  19. 算法导论-9.3-3-快速排序-最坏时间O(nlgn)
  20. 一步一步学爬虫(2)requests和正则表达式的具体举例

热门文章

  1. c语言四个数找大wxyz,2015年计算机二级《C语言》考试上机测试题(7)
  2. oracle 查看用户状态,Oracle数据库查看用户状态
  3. 神舟笔记本电源管理软件_笔记本电脑长期不用充不上电了?原来问题就出在这儿...
  4. java实用教程——组件及事件处理——ActionEvent事件
  5. leetcode-349-两个数组的交集
  6. [C++11]统一的数据初始化方式 - 初始化列表
  7. [蓝桥杯2018决赛]迷宫与陷阱
  8. Template Method(模板方法)--类行为型模式
  9. 汉诺塔 X HDU - 2511
  10. linux权限746,linux文件权限学习笔一