邮差送信 (15分)
C时间限制:1 毫秒 |  C内存限制:3000 Kb
题目内容:

有一个邮递员要在n个城市之间来回送信。但有的城市之间有大路相连而有的没有路。
现在要由一个城市到另一个城市送信,中途最少要经过多少个其它的城市呢?

输入描述

第一行是n,k(1<=n<=10000, 1<=k<=20000),接下来就是k行。这k行每行有两个数a,b(1<=a,b<= n),表示城市a和b之间有大路k行以后就是两个数p和q。

输出描述

输出从城市p到城市q之间最少要经过的其它的城市的数目。如果p和q之间不连通则输出0

输入样例

6 6
1 4
1 2
2 3
3 4
5 4
5 6
1 6

输出样例

2

#include <iostream>
using namespace std;
int a[100][100]; //存路径
int far[100]; //求路径,即存储它的前一个结点
int n, m, p, q; //n个城市, m条路, p起点, q终点
int z[1000]; //模拟队列
int visit[100]; //标记是否访问过 void print(int w){
int count = 0;
// cout << "w" << w << endl;
while(far[w] != p){
count++;
w = far[w];
}
cout << count;
} void dfs(){
int head = 1, tail = 2;
z[head] = p;
visit[p] = 1;
int flag = 1;
while(head < tail && flag){
for(int i = 1; i <= n; i++){
if(a[z[head]][i] == 1 && visit[i] == 0){
visit[i] = 1;
z[tail] = i;
tail++;
far[i] = z[head];
if(i == q){ //找到退出
// cout << "find" << endl;
flag = 0;
print(i);
break;
}
}
}
head++;
}
if(head == tail) //未找到
cout << 0;
} int main(){
cin >> n >> m;
int x, y;
for(int i = 1; i <= m; i++){
cin >> x >> y;
a[x][y] = a[y][x] = 1;
}
cin >> p >> q;
dfs();
return 0;
}

41-邮差送信(dfs)的更多相关文章

  1. 【dfs】P1433 吃奶酪

    题目描述 房间里放着n块奶酪.一只小老鼠要把它们都吃掉,问至少要跑多少距离?老鼠一开始在(0,0)点处. 输入输出格式 输入格式: 第一行一个数n (n<=15) 接下来每行2个实数,表示第i块 ...

  2. BZOJ_4034 [HAOI2015]树上操作 【树链剖分dfs序+线段树】

    一 题目 [HAOI2015]树上操作 二 分析 树链剖分的题,这里主要用到了$dfs$序,这题比较简单的就是不用求$lca$. 1.和树链剖分一样,先用邻接链表建双向图. 2.跑两遍$dfs$,其实 ...

  3. Linux上搭建Hadoop2.6.3集群以及WIN7通过Eclipse开发MapReduce的demo

    近期为了分析国内航空旅游业常见安全漏洞,想到了用大数据来分析,其实数据也不大,只是生产项目没有使用Hadoop,因此这里实际使用一次. 先看一下通过hadoop分析后的结果吧,最终通过hadoop分析 ...

  4. hadoop实战之分布式模式

    环境 192.168.1.101 host101 192.168.1.102 host102 1.安装配置host101 [root@host101 ~]# cat /etc/hosts |grep ...

  5. Linux网络管理——TCP/IP四层模型

    1. 网络基础 .note-content {font-family: "Helvetica Neue",Arial,"Hiragino Sans GB",&q ...

  6. hdoj-1016-Prime Ring Problem【深搜】

    Prime Ring Problem Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...

  7. [hdu6995]Travel on Tree

    问题即查询将其按照dfs序排序后,相邻两点(包括首尾)的距离和 考虑使用莫队+set维护,时间复杂度为$o(n\sqrt{n}\log n)$,无法通过 进一步的,注意到删除是可以用链表实现的,因此考 ...

  8. [bzoj4777]Switch Grass

    结论:最短路径一定是单独的一条边且在最小生成树上,可以用反证法证明.那么求出最小生成树,对于每一个点建立一棵权值线段树,再对每一个权值线段树上的叶子节点开一个multiset,维护所有儿子中该种颜色的 ...

  9. Anniversary party(hdu1520)

    Anniversary party Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others ...

随机推荐

  1. 命令行视频(ts/m3u8)下载工具 —— youtube-dl(ffmpeg 解码)

    youtube-dl 支持的站点:youtube-dl Supported sites youtube-dl 命令行参数: –version:查看版本: 1. 命令行工具安装 安装视频编解码工具 ff ...

  2. CSS 中文字体的英文名称 (simhei, simsun) 宋体 微软雅黑等

    Mac OS的一些:   华文细黑:STHeiti Light [STXihei] 华文黑体:STHeiti 华文楷体:STKaiti 华文宋体:STSong 华文仿宋:STFangsong 俪黑 P ...

  3. Gym 100712L Alternating Strings II(单调队列)

    题目链接 Alternating Strings II 题意是指给出一个长度为n的01串,和一个整数k,要求将这个01串划分为很多子串(切很多刀),使得每个子串长度不超过k,且每个字串不是01交替出现 ...

  4. fusionjs 学习一 基本试用

    参考demo 项目 https://github.com/rongfengliang/fusionjs-docker-demo 安装 create startkit yarn global add c ...

  5. ambassador 学习四 grpc 处理

    实际上都是envoy 的功劳 基本环境安装参考相关文档即可 参考demo proto code syntax = "proto3"; option java_multiple_fi ...

  6. 转--NLTK的内置函数

    NLTK的内置函数 1. 词语索引 (1) concordance函数    给出一个指定单词每一次出现,连同上下文一起显示. >>>text1.concordance('monst ...

  7. js基础篇string&&array(应YX同学面试复习要求 - -)

    js中的数据类型一共有五个基本数据类型,分别是undefined,null,boolean,number,string. js中的Object类型中包括两大类型:Function类型和array类型. ...

  8. UTF-8中的BOM

    UTF-8中的BOM UTF-8不需要BOM来表明字节顺序,但可以用BOM来表明编码方式.字符"ZERO WIDTH NO-BREAK SPACE"的UTF-8编码是EF BB B ...

  9. Windows Server 2012/win8 iis8 上安装 asp.net 4.5 当时用了mvc5 .net framework 4.5 所以得装下

    vs2013+mvc5 +.net framework 4.5  本地 iisexpress 调试一点问题没有,当部署到本机iis时 出现 无法识别 modules错误,具体错误提示是: 锁定是默认设 ...

  10. 【转】Java常量池详解

    今天My partner问我一个让他头疼的Java question,求输出结果: /** * * @author DreamSea 2011-11-19 */ public class Intege ...