题目描述

在古老的魔兽传说中,有两个军团,一个叫天灾,一个叫近卫。在他们所在的地域,有n个隘口,编号为1..n,某些隘口之间是有通道连接的。其中近卫军团在1号隘口,天灾军团在n号隘口。某一天,天灾军团的领袖巫妖王决定派兵攻打近卫军团,天灾军团的部队如此庞大,甚至可以填江过河。但是巫妖王不想付出不必要的代价,他想知道在不修建任何通道的前提下,部队是否可以通过隘口及其相关通道到达近卫军团展开攻击。由于n的值比较大(n<=1000),于是巫妖王找到了擅长编程的你 =_=,请你帮他解决这个问题,否则就把你吃掉变成他的魔法。为了拯救自己,赶紧想办法吧。

输入

输入包含多组,每组格式如下。

第一行包含两个整数n,m(分别代表n个隘口,这些隘口之间有m个通道)。
下面m行每行包含两个整数a,b;表示从a出发有一条通道到达b隘口(注意:通道是单向的)。

输出

如果天灾军团可以不修建任何通道就到达1号隘口,那么输出YES,否则输出NO。

示例输入

2 1
1 2
2 1
2 1

示例输出

NO
YES

提示

[cpp] view plaincopyprint?
  1. #include <stdio.h>
  2. #include <string.h>
  3. int map1[1001][1001];
  4. int visit[10000];
  5. int dfs(int i, int n)
  6. {
  7. int j, x=0;
  8. visit[i]=1;
  9. for(j=1; j<=n; j++)
  10. {
  11. if(!visit[j]&&map1[i][j])
  12. {
  13. if(j==1)
  14. return 1;
  15. else
  16. x=dfs(j,n);
  17. if(x)
  18. break;
  19. }
  20. }
  21. if(j>n) return 0;
  22. else
  23. {
  24. if(x)
  25. return 1;
  26. else
  27. return 0;
  28. }
  29. }
  30. int main()
  31. {
  32. int n, m, i, j, x, a, b;
  33. while(scanf("%d%d",&n,&m)!=EOF)
  34. {
  35. x=0;
  36. memset(map1,0,sizeof(map1));
  37. memset(visit,0,sizeof(visit));
  38. for(i=0; i<m; i++)
  39. {
  40. scanf("%d%d",&a,&b);
  41. map1[a][b]=1;
  42. }
  43. x=dfs(n,n);
  44. if(x)
  45. printf("YES\n");
  46. else
  47. printf("NO\n");
  48. }
  49. return 0;
  50. }

图结构练习——DFS——判断可达性相关推荐

  1. SDUT 2138 图结构练习——BFSDFS——判断可达性

    题目描述 在古老的魔兽传说中,有两个军团,一个叫天灾,一个叫近卫.在他们所在的地域,有n个隘口,编号为1..n,某些隘口之间是有通道连接的.其中近卫军团在1号隘口,天灾军团在n号隘口.某一天,天灾军团 ...

  2. 图结构练习——BFSDFS——判断可达性

    题目描述  在古老的魔兽传说中,有两个军团,一个叫天灾,一个叫近卫.在他们所在的地域,有n个隘口,编号为1..n,某些隘口之间是有通道连接的.其中近卫军团在1号隘口,天灾军团在n号隘口.某一天,天灾军 ...

  3. 基本数据结构(图: 基本结构,DFS,prim算法, kruskal算法)

    #include <iostream> using namespace std; //约定: //1. 图是由很多节点(VERTEX)构成的, 因此图结构是由一个VERTEX的链表构成的, ...

  4. C++ | 数据结构 | 图结构的讲解与模拟实现 | DFS与BFS的实现

    文章目录 前言 常见概念总结 图的模拟实现 邻接矩阵和邻接表的优劣 图的模拟实现(邻接表) 广度优先遍历(BFS) 深度优先遍历(DFS) hpp代码展示 前言 在聊图的结构之前,我们可以先从熟悉的地 ...

  5. 图结构练习——判断给定图是否存在合法拓扑序列(topo)

    图结构练习--判断给定图是否存在合法拓扑序列 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Description ...

  6. JavaScript实现图结构

    JavaScript实现图结构 一.图论 1.1.图的简介 什么是图? 图结构是一种与树结构有些相似的数据结构: 图论是数学的一个分支,并且,在数学中,树是图的一种: 图论以图为研究对象,研究顶点和边 ...

  7. 农夫过河问题(图结构)

    [题目介绍]:  所谓农夫过河问题是指农夫带一只狼.一只羊和一棵白菜在河南岸需要安全运到北岸.一条小船只能容下他和一件物品只有农夫能撑船.问农夫怎么能安全过河.  当然,狼吃羊,羊吃白菜,农夫不能将这 ...

  8. 图结构解决农夫过河问题(二附源代码)

    [什么是图结构]:图结构就是所有数据元素都可以连接,跟树结构有很大区别. 图结构包括两大部分: 1.顶点:所有的数据元素,每个元素就是一个顶点(数字1.2.3.4.5.6). 2.边:连接两个元素之间 ...

  9. 数据结构与算法 -- 树结构与图结构

    树的概念 形式化定义:算法的集合树(Tree)是由一个或多个结点组成的有限集合T,其中有一个特定的称为根的结点:其余结点可分为(m≥0)个互不相交的有限集T1,T2,T3,-,Tm,每一个集合本身又是 ...

最新文章

  1. 无聊的时候,冷死了(六)
  2. vscode 搭建Linux 内核开发环境
  3. 10-Flink集群的高可用(搭建篇补充)
  4. jQuery操作Class
  5. windows下cmd命令提示符下让程序后台运行命令
  6. 并发编程-concurrent指南-阻塞队列BlockingQueue
  7. linux下编译libyuv,linux.mk
  8. Linux运维问题解决(3)——VMware启动虚拟机报错 : 该虚拟机似乎正在使用中。如果该虚拟机未在使用,请按“获取(T)
  9. Windows2008R2的NFS
  10. 管理信息系统复习总结(保姆级)
  11. hg8245设置无线打印服务器,小编教您设置华为HG8245光纤猫路由器
  12. 分布式架构,Java高级工程师必看系列
  13. python取下标_python获取下标
  14. 华为p4支持鸿蒙功能吗_华为鸿蒙2.0系统支持的手机型号 华为鸿蒙2.0系统详解[多图]...
  15. Greenplum初始化数据库时出现gpadmin-[ERROR]:-gpstart error: Do not have enough valid segments to start the arr
  16. centos6如何添加阿里云centos和epel源
  17. 织梦模板文章的图片路径问题
  18. 推荐系统算法—协同过滤算法详解
  19. 16S扩增子分析专题课01背景介绍
  20. 计算机网络第八版--谢希仁 (持续更新中)

热门文章

  1. 【计算机网络】数据链路层 : 局域网基本概念 ( 局域网分类 | 拓扑结构 | 局域网特点 | 局域网传输介质 | 介质访问控制方法 | IEEE 802 | 链路层 LLC、MAC 控制子层 )
  2. 【运筹学】线性规划数学模型 ( 单纯形法 | 最优解判定原则 | 线性规划求解示例 )
  3. 【Android RTMP】RTMP 数据格式 ( FLV 视频格式分析 | 文件头 Header 分析 | 标签 Tag 分析 | 视频标签 Tag 数据分析 )
  4. Nike Barkley Foamposite Max “Rayguns”
  5. Python语言的程序结构
  6. xml凭证模板的一般制作
  7. php读取html文件(或php文件)的方法
  8. IOS第三天(@property与@synthesize的用法)
  9. 【Android面试】Android面试题集锦 (陆续更新)(最新2012-6-18)
  10. jquery技巧总结 学习