寻找道路(NOIP2014)神奇之题。。
原题传送门
这道题嘛。。
首先根据题目,我们要先知道哪些点能够到达终点。(反向BFS)
然后我们再求最短路的途中,必须随时判断周围的点是否被第一次BFS标记过。、
所以再来一次BFS。
数组记得清零,不然会炸。。
下面贴代码
#include<iostream> #include<cstdio> #include<cstring> using namespace std; int n,m,num=0,s,tt; int q[20000]; int step[20000]; int head[10001]; bool vis[10001]; int a[200001],b[200001]; struct edge{int to,next; }g[400001]; void ins(int u,int v) {g[++num].next=head[u];head[u]=num;g[num].to=v; } void bfs1(int last){vis[last]=true;int h=1,t=1;q[h]=last;while(h<=t){int tmp=q[h];for(int i=head[tmp];i;i=g[i].next)if(!vis[g[i].to]){vis[g[i].to]=true;q[++t]=g[i].to; }h++; } } bool chubian(int q){for(int i=head[q];i;i=g[i].next)if(!vis[g[i].to]) return false;return true; } bool bfs2(int first){memset(q,0,sizeof(q));int h=1,t=1;q[h]=first;while(h<=t){int tmp=q[h++];if(!chubian(tmp))continue;for(int i=head[tmp];i;i=g[i].next)if(step[g[i].to]==0){step[g[i].to]=step[tmp]+1;if(g[i].to==tt){printf("%d\n",step[tt]);return true;}q[++t]=g[i].to;}}return false; } int main(){scanf("%d%d",&n,&m);for(int i=1;i<=m;i++){scanf("%d%d",&a[i],&b[i]);ins(b[i],a[i]); }scanf("%d%d",&s,&tt);bfs1(tt);memset(head,0,sizeof(head));memset(g,0,sizeof(g));num=0;for(int i=1;i<=m;i++)ins(a[i],b[i]);if(!bfs2(s))printf("-1\n"); }
转载于:https://www.cnblogs.com/ghostfly233/p/6857098.html
寻找道路(NOIP2014)神奇之题。。相关推荐
- P2296 寻找道路
P2296 寻找道路 题目描述 在有向图 \(G\) 中,每条边的长度均为 \(1\) ,现给定起点和终点,请你在图中找一条从起点到终点的路径,该路径满足以下条件: 路径上的所有点的出边所指向的点都直 ...
- 1807. [NOIP2014]寻找道路P2296 寻找道路
题目描述 在有向图G 中,每条边的长度均为1 ,现给定起点和终点,请你在图中找一条从起点到终点的路径,该路径满足以下条件: 1 .路径上的所有点的出边所指向的点都直接或间接与终点连通. 2 .在满足条 ...
- [NOIP2014] 寻找道路
题目描述 在有向图G 中,每条边的长度均为1 ,现给定起点和终点,请你在图中找一条从起点到终点的路径,该路径满足以下条件: 1 .路径上的所有点的出边所指向的点都直接或间接与终点连通. 2 .在满足条 ...
- NOIP2014 寻找道路
题目描述 在有向图G 中,每条边的长度均为1 ,现给定起点和终点,请你在图中找一条从起点到终点的路径,该路径满足以下条件: 1 .路径上的所有点的出边所指向的点都直接或间接与终点连通. 2 .在满足条 ...
- NOIP2014洛谷P2296:寻找道路(bfs)
解析 杀鸡焉用AS47 做的巨差的一道题 WA3遍+写的巨麻烦+复杂度被吊打 qwq 说起来很玄学,但第一交之前就有一种强烈的预感觉得自己会WA 一开始像个傻子一样对有环图上记搜 WA了还不知道为啥- ...
- 全国信息学奥林匹克联赛 ( NOIP2014) 复赛 模拟题 Day1 长乐一中
题目名称 正确答案 序列问题 长途旅行 英文名称 answer sequence travel 输入文件名 answer.in sequence.in travel.in 输出文件名 answer. ...
- Luogu 2296 寻找道路
https://www.luogu.org/problemnew/show/2296 题目描述 在有向图G 中,每条边的长度均为1 ,现给定起点和终点,请你在图中找一条从起点到终点的路径,该路径满足以 ...
- 洛谷 P2296 寻找道路
感慨 周五比赛的测试题,结果到比赛结束也没有读懂题意...给的样例太少了,我一直以为我是不是spfa敲错了...没想到中间还有卡的地方 分析 题目中的一句耐人寻味的话"路径上的所有点的出边所 ...
- 洛谷2296 寻找道路
题目描述 在有向图G 中,每条边的长度均为1 ,现给定起点和终点,请你在图中找一条从起点到终点的路径,该路径满足以下条件: 1 .路径上的所有点的出边所指向的点都直接或间接与终点连通. 2 .在满 ...
- 2022年最新浙江道路运输安全员真题题库及答案
百分百题库提供道路运输安全员考试试题.道路运输安全员考试预测题.道路运输安全员考试真题.道路运输安全员证考试题库等,提供在线做题刷题,在线模拟考试,助你考试轻松过关. 题干:根据<中华人民共和国 ...
最新文章
- python与c语言数据交互,python与c语言交互应用实例
- 阿里发布2019十大科技趋势,5G仍是主要生产力
- 【Servlet】ServletContext、ServletConfig对象学习、用户登录系统完善
- 用Docker构建LNMP环境(上)
- SAP Customer Data Cloud的Audit log设置
- Android loading进度条使用简单总结
- python界面设计模块_Python+Pycharm+PyQT5可视化程序设计入门
- ElementUI:路由界面刷新后导航栏仍显示default-active不跟随路由变化
- 软考-中级软件设计师电子资料合集
- android 微信 语音转文字,微信语音转文字功能
- 电视和计算机共享视频,电脑中的图片视频一键共享到电视上去看
- 微信小程序之 收藏功能
- 华为USG防火墙搭建IPsec***实战
- 层次化网络设计(三层网络结构)
- 决赛巅峰之战落幕,第二届翼支付杯大数据建模大赛完美收官
- PS技巧一-----镜头光晕
- CG Tools 工具收集
- 华为研究院19级研究员几年心得终成趣谈网络协议文档,附讲解
- 【编程竞赛】【CSDN竞赛第37期】
- Centos7 编译安装git 报错 git-compat-util.h:14:2: error
热门文章
- 可调稳压电源lm317实验报告_可调直流稳压电源实验报告 -
- layui iframe弹出层高度自适应,并垂直居中
- 关于Java工具eclipse的基本
- requests.exceptions.ConnectionError: HTTPConnectionPool(host=‘****, port=80): Max retries exceeded w
- 连接计算机硬盘usb,使用移动硬盘时电脑显示:“如果您将此USB设备连接到高速USB2.0端口,可以提升其性能”...
- php怎么将农历转换成公历,农历公历转换器,公历农历转换
- mysql将公历农历转换_SQL 日期转换(阳历转阴历)
- 数字麦克风PDM信号采集与STM32 I2S接口应用(三)
- 关于Name和Caption属性的理解
- OpenEuler上构建LFS8.4