sdut oj 3058 路线冲突问题(BFS+记录路径算法,回溯路径 )
路线冲突问题
题目描述
给出一张地图,地图上有n个点,任意两点之间有且仅有一条路。点的编号从1到n。
现在兵团A要从s1到e1,兵团B要从s2到e2,问两条路线是否会有交点,若有则输出交点个数,否出输出”success”。
输入
对于每组输入。
第一行输入n(1 <= n <= 100000),代表点的个数。
接下来的n-1行,每行包含两个整数u,v(1 <= u,v <= n),代表u,v之间有一条相连。
再接下里的一行包含四个整数s1,e1,s2,e2(1 <= s1,e1,s2,e2 <= n)。
输出
示例输入
3
1 2
2 3
1 2 2 3
示例输出
1 算法分析:两次bfs记录下起点到终点的路径就行了,然后比较两条路径有没有重合点。
代码:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <vector>
#include <queue>
#include <algorithm> using namespace std; vector<int>q[100002];
bool vis[100002];
int fa[100002];
bool path[100002]; void BFS(int s, int e)
{
memset(vis, false, sizeof(vis));
memset(fa, 0, sizeof(fa));
vis[s]=true;
queue<int>p;
int i, j, len;
while(!p.empty())
p.pop();
p.push(s);
int flag=0;
while(!p.empty())
{
int dd=p.front();
p.pop();
len=q[dd].size();
for(i=0; i<len; i++)
{
if( vis[q[dd][i]]==false )
{
fa[ q[dd][i] ] = dd; //记录前驱
//printf("%d--%d\n", dd, fa[q[dd][i]] );
if(q[dd][i]==e) //找到终点跳出
{
flag=1; break;
}
p.push( q[dd][i] );
vis[ q[dd][i] ] =true;
}
}
if(flag==1)
break;
}
} int main()
{
int n;
int i, j;
int u, v;
int a, b, x, y; while(scanf("%d", &n)!=EOF)
{
for(i=0; i<=n; i++)
q[i].clear();
for(i=0; i<n-1; i++)
{
scanf("%d %d", &u, &v);
q[u].push_back(v);
q[v].push_back(u);
}
scanf("%d %d %d %d", &a, &b, &x, &y);
BFS(a, b);//fa数组弹出
memset(path, false, sizeof(path));
for(i=fa[b]; i!=0; i=fa[i] )
{
path[i]=true;
}
path[b]=true; BFS(x, y);
int cnt=0;
for(j=fa[y]; j!=0; j=fa[j] )
{
if(path[j]==true)
cnt++;
}
if(path[y]==true)
cnt++; if(cnt==0)
printf("success\n");
else
printf("%d\n", cnt);
}
return 0;
}
sdut oj 3058 路线冲突问题(BFS+记录路径算法,回溯路径 )的更多相关文章
- sdut oj 操作系统实验--SSTF磁盘调度算法【操作系统算法】
操作系统实验--SSTF磁盘调度算法 Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^ 题目描述 磁盘调度在多道程序设计的计算机系统中,各个进 ...
- SDUT OJ 图练习-BFS-从起点到目标点的最短步数 (vector二维数组模拟邻接表+bfs , *【模板】 )
图练习-BFS-从起点到目标点的最短步数 Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^ 题目描述 在古老的魔兽传说中,有两个军团,一个叫天 ...
- POJ.3894 迷宫问题 (BFS+记录路径)
POJ.3894 迷宫问题 (BFS+记录路径) 题意分析 定义一个二维数组: int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, ...
- SDUT OJ 2607
/*http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2607*/ 题目大意:给出一个字符串,求出里 ...
- Codeforces-A. Shortest path of the king(简单bfs记录路径)
A. Shortest path of the king time limit per test 1 second memory limit per test 64 megabytes input s ...
- SDUT OJ 1221 亲和数 (找出某个数n所有的因子数,只需要暴力:2->sqrt(n) 即可 )
亲和数 Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^ 题目描述 如果a的因子和等于b,b的因子和等于a,且a≠b,则称a,b为亲和数对. ...
- HDU1026--Ignatius and the Princess I(BFS记录路径)
Problem Description The Princess has been abducted by the BEelzebub feng5166, our hero Ignatius has ...
- POJ 3414--Pots(BFS+回溯路径)
Pots Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 9963 Accepted: 4179 Special Ju ...
- SVN版本冲突中 Files 的值“ < < < < < < < .mine”无效路径中具有非法字符的解决办法
.NET 中 SVN版本冲突中 Files 的值“ < < < < < < < .mine”无效路径中具有非法字符的解决办法: 一. 1.将项目逐个进行编译, ...
随机推荐
- Android 蓝牙 笔记
安卓:短信复制机制 软件识别蓝牙 软件可以读取蓝牙的信息 给蓝牙弄上一个类似于短信的东西 并且存一个短信 然后发到客户端 客户端 可以分类 分成表格 形式 这样做的目的是为了 让你的设备可以写蓝牙给 ...
- Don't Panic! KRACK 没你想象的那么糟
上海交通大学密码与计算机安全实验室(LoCCS)软件安全小组(GoSSIP)版权所有,转载请与作者取得联系! 著名的计算机学术安全会议CCS在2017年录用了一篇名为Key Reinstallatio ...
- TensorFlow 之 高层封装slim,tflearn,keras
tensorflow资源整合 使用原生态TensorFlow API来实现各种不同的神经网络结构.虽然原生态的TensorFlow API可以很灵活的支持不同的神经网络结构,但是其代码相对比较冗长,写 ...
- 使用Golang利用ectd实现一个分布式锁
http://blog.codeg.cn/post/blog/2016-02-24-distrubute-lock-over-etcd/ By zieckey · 2016年02月24日 · 1205 ...
- 《UNIX-Shell编程24学时教程》读书笔记Chap3,4 文件,目录操作
Chap3 文件操作 P28 在这章中,要着重记住一些常用的选项,要有使用正则表达式的思维,能更快达到目的.----@im天行 3.1 列文件名 .profile sh的初始化脚本: .kshr ...
- Oracle 【to_number】【instr】
需求:对一个包含数字的字符串排序 search后参考了 http://www.cnblogs.com/m-cnblogs/archive/2012/03/30/2425938.html 截屏: (用 ...
- TIBCO RV
http://blog.csdn.net/tiercel2008/article/details/6799952
- C语言--函数篇
1-1.函数简单调用 1 #include<stdio.h> 2 #include<string.h> 3 #include<windows.h> 4 int ...
- Django-content—type
Django包含一个contenttype应用,它可以追踪安装在你的Django项目里的所有的应用,并提供一个高层次的,通用的接口用于与你的模型进行交互 Contenttypes 的核心应用是Cont ...
- kubernetes调度之资源耗尽处理配置
系列目录 本篇将介绍如何使用kubelet处理资源耗尽的情况 当可用的计算机资源非常低的时候,kubelet仍然要保证节点的稳定性.当处理不可压缩的计算机资源(比如内存或磁盘空间)时,这尤其重要,当这 ...