通过这道题,我只想要说图论的题,建好了图,题就解了一大半了。。。

这道题建好图后,dfs暴搜就行了。。。

View Code

 1 #include<iostream>
 2 #include<cstring>
 3 const int N=60;
 4 using namespace std;
 5
 6 int n,m;
 7 char map[N][N];
 8 int visited[N][N];
 9 int dir[4][2]={{-1,0},{0,1},{1,0},{0,-1}};//up/right/down/left
10 int pip[11][4]={{1,0,0,1},{1,1,0,0},{0,0,1,1},{0,1,1,0},{1,0,1,0},{0,1,0,1},{1,1,0,1},{1,0,1,1},{0,1,1,1},{1,1,1,0},{1,1,1,1}};//up/right/down/left
11
12 void dfs(int x,int y){
13     visited[x][y]=1;
14     for(int i=0;i<4;i++){
15         int xx=x+dir[i][0];
16         int yy=y+dir[i][1];
17         //原来的方向上要有管道,要走的点也要有对应的管道衔接。。。
18         if(!visited[xx][yy]&&xx>=0&&xx<m&&yy>=0&&yy<n&&pip[map[x][y]-'A'][i]&&pip[map[xx][yy]-'A'][(i+2)%4])
19             dfs(xx,yy);
20     }
21 }
22
23
24 int main(){
25     while(scanf("%d%d",&m,&n)!=EOF){
26         if(m<0||n<0)break;
27         int count=0;
28         memset(visited,0,sizeof(visited));
29         for(int i=0;i<m;i++){
30             scanf("%s",map[i]);
31         }
32         for(int i=0;i<m;i++){
33             for(int j=0;j<n;j++){
34                 if(!visited[i][j]){
35                     dfs(i,j);
36                     count++;
37                 }
38             }
39         }
40         printf("%d\n",count);
41     }
42     return 0;
43 }

转载于:https://www.cnblogs.com/wally/archive/2013/02/02/2890375.html

hdu 1198农田灌溉相关推荐

  1. 实现DFS之“农田灌溉”

    这也是一道利用了DFS的题目,先说下我的思路:用一个二维数组记录每个字母所代表的含义(管道方向),用另一个二维数组记录4个方向的变换坐标:随后利用经典的DFS递归遍历即可~(还要注意在方向的处理上前后 ...

  2. hdu 1198 Farm Irrigation

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1198 题目大意: 有一大块土地需要浇水,这块土地由很多的小块土地(有十一种)组成,小块土地上有水沟, ...

  3. HDU 1198 Farm Irrigation

    题目大意:给你地图,让你判断需要多少水才可以将农场灌满. 题解:显然用并查集比较容易,将可以连通的并起来,最后输出连通块的数目即可,一开始我用字母分类讨论发现很麻烦,于是参考别人的博客发现,直接自己写 ...

  4. 【单片机毕业设计】【mcuclub-202】大棚环境检测(土壤温湿度) | 大棚温湿度检测 | 农田灌溉系统 | 智能灌溉系统 | 智慧农业灌溉

    设计简介: 项目名:基于单片机的土壤温湿度控制系统 单片机:STC89C52 功能: 1.通过DS18B20温度传感器测量环境温度: 2.通过土壤湿度传感器测量土壤湿度: 3.通过按键可设置温湿度上下 ...

  5. linux智能灌溉流程,农田自动灌溉系统及灌溉方法与流程

    本发明属于农业领域,具体涉及一种农田自动灌溉系统及灌溉方法. 背景技术: 我国自古以来都是是农业大国,过去的灌溉方式都很单一,基本上都是靠人工灌溉,到了近代农业设施才发展的起来的.但是效果并不太明显, ...

  6. 大田智能灌溉系统解决方案

    大面积农田的灌溉问题一直很头疼,水费高.供电难.布线麻烦等等问题,其实如今已经有了智能灌溉系统,升级了农业灌溉方式的同时,也解决了十几亩以上大面积农田灌溉麻烦的问题. 智能灌溉系统的原理涉及到传感器. ...

  7. 【单片机毕业设计】基于单片机的智能灌溉系统的设计

    一.功能简介 题目拓展:基于单片机的土壤湿度控制的设计 基于单片机的农田灌溉系统的设计 基于单片机的智慧农业灌溉的设计 项目编号:mcuclub-hj-011 单片机类型:STC89C52.STM32 ...

  8. 远程智能化灌溉系统 解决方案

    自20世纪以来,我国农业用水出现严重浪费现象,农田灌溉是农业生产中的重中之重,传统农业灌溉存在较大的弊端,灌溉水利用率较低,不便管理,浪费水资源.灌溉作业大多还是处于传统灌溉模式:以人工手动控制为主, ...

  9. 园林智能灌溉方案优势

    伴随着市政工程.公司绿化园林的面积不断发展,智能灌溉的面积不断增长以及对于细致浇灌标准的明显提高,完成浇灌的管理自动化技术.智能化系统.数据可视化已经成为园林绿化工作的核心.降低园林景观绿化的浇灌用人 ...

最新文章

  1. 提升jmeter自身性能
  2. 计算机在外语专业中有哪些应用,CALL(3):计算机在外语教学中的应用
  3. 22、mysql主键自增值和偏移量的查看和修改
  4. Struts2中ValueStack结构和总结
  5. python条件控制语句要注意什么_浅析Python 条件控制语句
  6. onnx 测试_pytorch onnx onnxruntime tensorrt踩坑 各种问题
  7. 【Spring】Spring 关于 Redis 的序列化器
  8. Why I am here--细谈如何Hadoop重写分块函数,改变分块规则
  9. Linux下Git免输密码解决方式
  10. Trusted Execution Technology (TXT) --- 基本原理篇
  11. 新手如何从零开始学习unity
  12. 萤石云开放平台java_萤石云控制代码
  13. 什么是数据可视化大屏?有哪些优点
  14. ubuntu16.04 运行ROVIO
  15. 独孤求败-小滴云架构大课十八式【xiaoecf】
  16. 01-Empire-Lupin-One vulnhub靶场(ssh2john)
  17. Origin—对数据进行分类描述统计,包括总数,均值,标准差,总和,最小、最大值,中值。
  18. 既生瑜何生亮,成发布会新宠的网红会干掉自媒体?!
  19. Scratch3.0——助力新进程序员理解程序(一、基础使用与运动)
  20. 为华为荣耀5c(nem-tlooh)编译最新twrp recovery

热门文章

  1. java四则运算,计算器的实现
  2. 数据库实验7 数据库视图的定义与使用
  3. 拟阵:贪心原理(bzoj 3105: [cqoi2013]新Nim游戏)
  4. js中数据结构数组Array、映射Map、集合Set、对象、JSON
  5. 【linux】web socket
  6. PHP文件可限速下载代码
  7. ios之JavaScript
  8. Java程序猿从笨鸟到菜鸟之(九十二)深入java虚拟机(一)——java虚拟机底层结构具体解释...
  9. BizTalk Server 2010新功能介绍(四):基于安全连接的FTP适配器
  10. 送6个Gmail邀请!