41-邮差送信(dfs)
邮差送信 (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)的更多相关文章
- 【dfs】P1433 吃奶酪
题目描述 房间里放着n块奶酪.一只小老鼠要把它们都吃掉,问至少要跑多少距离?老鼠一开始在(0,0)点处. 输入输出格式 输入格式: 第一行一个数n (n<=15) 接下来每行2个实数,表示第i块 ...
- BZOJ_4034 [HAOI2015]树上操作 【树链剖分dfs序+线段树】
一 题目 [HAOI2015]树上操作 二 分析 树链剖分的题,这里主要用到了$dfs$序,这题比较简单的就是不用求$lca$. 1.和树链剖分一样,先用邻接链表建双向图. 2.跑两遍$dfs$,其实 ...
- Linux上搭建Hadoop2.6.3集群以及WIN7通过Eclipse开发MapReduce的demo
近期为了分析国内航空旅游业常见安全漏洞,想到了用大数据来分析,其实数据也不大,只是生产项目没有使用Hadoop,因此这里实际使用一次. 先看一下通过hadoop分析后的结果吧,最终通过hadoop分析 ...
- hadoop实战之分布式模式
环境 192.168.1.101 host101 192.168.1.102 host102 1.安装配置host101 [root@host101 ~]# cat /etc/hosts |grep ...
- Linux网络管理——TCP/IP四层模型
1. 网络基础 .note-content {font-family: "Helvetica Neue",Arial,"Hiragino Sans GB",&q ...
- hdoj-1016-Prime Ring Problem【深搜】
Prime Ring Problem Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- [hdu6995]Travel on Tree
问题即查询将其按照dfs序排序后,相邻两点(包括首尾)的距离和 考虑使用莫队+set维护,时间复杂度为$o(n\sqrt{n}\log n)$,无法通过 进一步的,注意到删除是可以用链表实现的,因此考 ...
- [bzoj4777]Switch Grass
结论:最短路径一定是单独的一条边且在最小生成树上,可以用反证法证明.那么求出最小生成树,对于每一个点建立一棵权值线段树,再对每一个权值线段树上的叶子节点开一个multiset,维护所有儿子中该种颜色的 ...
- Anniversary party(hdu1520)
Anniversary party Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others ...
随机推荐
- Winform开发之DataGridView事件和属性
DataDridView的事件和属性非常多,一一介绍还是不现实,这里借鉴一下园友和MSDN上的介绍吧 1.C#中 DataGridView 属性说明(转载) 2.MSDN上DataGridView事件 ...
- Java第三次作业--面向对象基础(封装)
Deadline: 2017-4-6 23:00 一.学习要点 认真看书并查阅相关资料,掌握以下内容: 掌握简单类的设计 掌握利用对象引用建立类与类之间的联系 掌握this关键字 掌握static关键 ...
- hibernate之xml映射文件关系维护,懒加载,级联
一:关系维护 --->inverse默认值false,表示不放弃关系的维护. --->inverse="true"配置在那一端,表示那一端xml对应的po放弃关系的 ...
- form表单传递对象数组
ajax传递数组.form表单提交对象数组 在JSP页面开发中,我们常常会用到form表单做数据提交,由于以前一直只是使用 form表单提交单个对象,只要表单文本域的name值和接收的对象的属性名一致 ...
- Android分类导航
新的一年,将在2017下半年所写的博文作了个总结,也是方便自己以后查阅,整理完也是发现在这半年而是学到了许多,新的一年,继续努力! 我的第一个Android开源库——CirclePointMove中文 ...
- TASKER 定制你的手机让它在办公室时屏幕 30 分钟才灭
TASKER 定制你的手机让它在办公室时屏幕 30 分钟才灭 因为到的办公室,手机一直是充电的,不想屏幕太快关关掉,所以使用 TASKER 做了一个条件. 当 WIFI 连接到公司 WIFI 且充电中 ...
- UML drawing tools
1. tools based on the script http://www.websequencediagrams.com/ UMLet 12.1 My best two recommendati ...
- 华硕主板P8H61(P8H61-M_LX3_PLUS_R2.0)成功禁用USB口
公司大批这个型号的主板,在百度上搜索了一下,其中有一篇帖子说华硕客服说这个型号的USB控制XX是集成成南桥上面没法禁止. 经过研究发现官网上的0802版可以支持禁止usb,并且可以根据需要为每一个US ...
- Android中如何使用JUnit进行单元测试 eclipse
Android中如何使用JUnit进行单元测试 在我们日常开发android app的时候,需要不断地进行测试,所以使用JUnit测试框架显得格外重要,学会JUnit可以加快应用的开发周期. Andr ...
- elasticsearch RESTful
一 .索引(index) 1. 创建索引 (1)第一种方式 PUT twitter { "settings" : { "index" : { "num ...