洛谷2296 寻找道路

题目描述

在有向图G 中,每条边的长度均为1 ,现给定起点和终点,请你在图中找一条从起点到终点的路径,该路径满足以下条件: 
1 .路径上的所有点的出边所指向的点都直接或间接与终点连通。 
2 .在满足条件1 的情况下使路径最短。 
注意:图G 中可能存在重边和自环,题目保证终点没有出边。 
请你输出符合条件的路径的长度。

输入输出格式

输入格式:

输入文件名为road .in。 
第一行有两个用一个空格隔开的整数n 和m ,表示图有n 个点和m 条边。 
接下来的m 行每行2 个整数x 、y ,之间用一个空格隔开,表示有一条边从点x 指向点y 。 
最后一行有两个用一个空格隔开的整数s 、t ,表示起点为s ,终点为t 。

输出格式:

输出文件名为road .out 。 
输出只有一行,包含一个整数,表示满足题目᧿述的最短路径的长度。如果这样的路径不存在,输出- 1 。

输入输出样例

输入样例#1:

3 2  
1 2  
2 1  
1 3  

输出样例#1:

-1

输入样例#2:

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

输出样例#2:

3

说明

解释1:
 
如上图所示,箭头表示有向道路,圆点表示城市。起点1 与终点3 不连通,所以满足题
目᧿述的路径不存在,故输出- 1 。 
解释2:

如上图所示,满足条件的路径为1 - >3- >4- >5。注意点2 不能在答案路径中,因为点2连了一条边到点6 ,而点6 不与终点5 连通。
对于30%的数据,0<n≤10,0<m≤20;
对于60%的数据,0<n≤100,0<m≤2000;
对于100%的数据,0<n≤10,000,0<m≤200,000,0<x,y,s,t≤n,x≠t。

解题思路

利用宽搜先去掉所有的不能使用的点,具体就是把能跑到的赋值,在用循环找到跑不到的,把与他相连的点都去掉,只需要去掉直接相连的就行!!!然后跑一边dij或者spfa就能过,这里要注意的是点和边都有点多,应该用链表储存

program ChoosePath;
var pd:Array[0..10000] of boolean;u,v,head,next:array[0..200000] of longint;b,d,c:array[0..10000] of longint;i,j,m,n,now,x,y,h,t,l,sum:Longint;
procedure dij;
var i,min,minn,l:longint;
beginfor i:=1 to n do d[i]:=maxlongint;d[y]:=0;for i:=1 to n dobeginmin:=maxlongint;for j:=1 to n do if (min>d[j]) and (  pd[j]) thenbeginmin:=d[j];minn:=j;end;if min=maxlongint then exit;pd[minn]:=false;l:=head[minn];while l<>0 dobeginif (min+1<d[v[l]]) and ( pd[v[l]]) then d[v[l]]:=min+1;l:=next[l];end;end;
end;beginread(n,m);for i:=1 to m dobeginread(v[i],u[i]);next[i]:=head[u[i]];head[u[i]]:=i;end;read(x,y);h:=0;t:=0;inc(t);b[t]:=y;while h<=t dobegininc(h);now:=b[h];pd[now]:=true;l:=head[now];while l<>0 dobeginif pd[v[l]]=false thenbegininc(t);b[t]:=v[l];pd[v[l]]:=true;end;l:=next[l]end;end;for i:=1 to n do if pd[i]=false thenbegininc(sum);c[sum]:=i;end;for i:=1 to sum dobeginl:=head[c[i]];while l<>0 dobeginpd[v[l]]:=false;l:=next[l];end;end;dij;writeln(d[x]);
end.

 

转载于:https://www.cnblogs.com/wuminyan/p/4746300.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/296604.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

奇迹mu选区后就一直显示连接服务器,奇迹mu双开

《奇迹mu》双开方法 EX702双开的方法&#xff0c;今天小编为大家带来了奇迹MU双开方法&#xff0c;为大家解决一些双开中的问题&#xff0c;下面就一起来看看EX702双开的问题吧&#xff01;奇迹mu双开&#xff1a;接下来是这样&#xff1a;1、 复制2个客户端&#xff0c;放在不…

第十一章:【UCHome二次开发】功能修改

有些功能的修改涉及到了流程或数据需求的变动&#xff0c;这时候简单的修改模板文件已经无法解决问题&#xff0c;而是需要修改对应的流程和数据处理代码来完成。一般处理程序文件位于/source文件夹下。具体的代码修改就是根据功能逻辑来调整php代码或是sql语句&#xff0c;这里…

华为鸿蒙OS 2.0正式发布!明年华为手机将全面支持!

全世界只有3.14 % 的人关注了爆炸吧知识9 月 10 日&#xff0c;在华为开发者大会 2020 上&#xff0c;华为消费者业务 CEO 余承东宣布推出鸿蒙 OS 2.0 版本&#xff08;HarmonyOS 2.0&#xff09;。鸿蒙 OS 的代码也在今天下午HDC 2020 大会结束后的 18:18 正式开放。鸿蒙 OS 开…

echo字符集 shell_Xshell 能显示中文 但输入的中文都变成了问号

我的Xshell 本来可以输入中文&#xff0c;但是不知道怎么的输入中文却变成问号了解决方法&#xff1a;点击控制面板&#xff0c;然后将除自己使用的中文输入之外的其他语言、输入法等先全部删除&#xff0c;然后再试一下&#xff0c;如果可以输入中文了&#xff0c;可适当添加一…

微软认真聆听了开源 .NET 开发社区的炮轰: 通过CLI 支持 Hot Reload 功能

微软近日激怒了开源.NET社区&#xff0c;起因是它删除了开源.NET的一项旗舰功能&#xff0c;以提升Visual Studio 的吸引力&#xff0c;尤其是针对与Visual Studio颇有渊源的跨平台源代码编辑器Visual Studio Code。好消息是微软听取了社区的声音&#xff0c;恢复了通过CLI支持…

System.Xml名称空间下的支持DOM的类型

最主要的常用的类型 XmlNode 是DOM结构中的所有类型的基础类型&#xff0c;它定义了所有XML节点的通用属性和方法&#xff0c;是XMLDOM的基础。它具有一个ChildNodes属性&#xff0c;表示它所包含的子XML节点。 XmlAttribute 表示XML属性&#xff0c;它只保存在XmlElement的Att…

烽火服务器查询服务器型号,烽火服务器应该起的进程

烽火服务器应该起的进程 内容精选换一换IDE Daemon模块提供接口给Matrix和Framework调用&#xff0c;Matrix通过这些接口可以实现将DVPP预处理结果数据发送到IDE-daemon-hiai进程所在的服务器&#xff0c;IDE-daemon-hiai将结果数据写到文件中&#xff1b;Framework通过调用这些…

(译)元素浮动的那些事儿

原文&#xff1a;http://bitsofco.de/2015/how-floating-works/&#xff0c;作者 Ire Aderinokun 发表于 2015 年 8 月 11 日。 尽管我们现在用浮动布局已经很少了&#xff0c;但是在一些特殊的需求下&#xff0c;它仍然是唯一可行的解决方案。在这些少见的需求中&#xff0c;浮…

session机制和cookie机制

一、cookie机制和session机制的区别 具体来说cookie机制采用的是在客户端保持状态的方案&#xff0c;而session机制采用的是在服务器端保持状态的方案。同时我们也看到&#xff0c;由于才服务器端保持状态的方案在客户端也需要保存一个标识&#xff0c;所以session 机制可能需要…

无法定位程序输入点dxgiget_美国ABB TZIDC 智能定位器调试方法

一、ABBTZID-C 智能定位器安装及操作气路连接使用与定位器气源端口处标识的标准接口连接气源连接定位器的输出与气动执行器的气缸电气连接根据下列接线端子图以及设计要求进行相应的配线(一般只需11&#xff0c;-12&#xff0c;31&#xff0c;-32)11-12控制信号输入端子(DC4---…

这个黑科技小音箱,不用连蓝牙、一触即播

▲ 点击查看以前用蓝牙音箱&#xff0c;都要打开蓝牙找半天&#xff0c;有时还找不到对应的音箱。找到了&#xff0c;连接又很 …… 漫长 ……一句「请等待蓝牙配对」重复好几遍还没连上&#xff0c;整个人都不好了。而今天介绍的这个开物灵犀感应音箱&#xff0c;不用连蓝牙&a…

Win11运行安卓超详细教程!芜湖起飞!

一、前提Windows 11 版本号为 Build 22000.xxx 或更高版本。您的电脑硬件 BIOS/UEFI 支持虚拟化功能。二、支持本教程适用于 Windows 11 正式版和预览版&#xff0c;包括 Dev 频道、Beta 频道和 Release Preview 频道。本教程适用于搭载 Intel 和 AMD 等处理器的 Windows 11 电…

精品教程--Android实战系列源码与教程

下载源码 知识技能概要&#xff1a; 1. 此套为零基础源码与教程 2. 包括了Android应用开发所有技术 3. 配套2011QQ效果实现项目源码 4. 堪称最详细中文源码注释 ...... 详细介绍: 1. 零基础源码与教程 本套源码与教程&#xff0c;由我们具有丰富开发经验的高级程师针对需要学习…

http服务器异步响应,python – 具有异步响应的Twisted http服务器,其中请求必须等待数据变为可用或超时...

我正在尝试编写一个简单的http服务器来处理在数据结构中查找响应或超时的异步请求&#xff1a;>请求到达>时间>如果回复,请将其退回>如果超时,则返回超时消息我是新手,我想知道做异步响应的最佳方法是什么.我看了some twisted Deferred docs和callLater,但我不清楚…

linux系统将python升级到2.7.10版本

下载地址&#xff1a;https://www.python.org/ftp/python/2.7.10/Python-2.7.10.tgz下载文件到指定目录[rootoperations ~]# cd /usr/local/[rootoperations local]# wget https://www.python.org/ftp/python/2.7.10/Python-2.7.10.tgz--19:12:59-- https://www.python.org/ft…

windows系统自动化设置

为减轻windows日常维护工作量&#xff0c;可使用以下本人115网盘工具&#xff1a; 1、远程唤醒工具(远程唤醒.rar&#xff0c;绿色程序) 该工具方便运维人员在节假日及日常开机时&#xff0c;无需进入机房而实现远程开机&#xff0c;目前根据公司情况只能实现同网段机器远程唤醒…

jmeter xml 请求_Jmeter学习笔记(十六)——HTTP请求之content-type

一、HTTP请求Content-Type常见的媒体格式类型如下&#xff1a;text/html &#xff1a; HTML格式text/plain &#xff1a;纯文本格式text/xml &#xff1a; XML格式image/gif &#xff1a;gif图片格式image/jpeg &#xff1a;jpg图片格式image/png&#xff1a;png图片格式以appl…

mdx 聚合函数

聚合函数Aggregation(set_express, numeric_express), Aggregation&#xff08;http://msdn.microsoft.com/zh-cn/library/ms145524.aspx&#xff09;执行求和函数, 如果和某些其他求和函数配合的话, 会有变化. 看一个例子 SELECT { ([Measures].[Reseller Sales Amount]), ([M…

存储设备分区,格式化,挂载

blkid:查看分区UUID以及类型[rootlocalhost ~]# blkid /dev/sda2: UUID"8e6e21f9-c296-4493-986c-41204c8c4bdb" TYPE"ext4" /dev/sda3: UUID"d36c4b0d-1942-48b2-8d17-fbbd2df506bc" TYPE"ext4"分区完成之后&#xff0c;运行partpro…

被小学数学题套路到哭!这些“逆天”题目,谁做谁知道…

全世界只有3.14 % 的人关注了爆炸吧知识看着孩子的作业题&#xff0c;有多少爸爸妈妈感叹着&#xff0c;幸亏自己毕业早&#xff0c;要不然小学都不能毕业&#xff01;这不&#xff0c;最近一道简单的小学数学题&#xff0c;又刷爆了家长们的朋友圈。一起往下看。算一算图中的这…