#include<iostream>
#include<cmath>
#include<cstdlib>
#include<cstdio>
#include<algorithm>
#include<string>
#include<cstring>
#include<vector>
#include<deque>
#include<queue>
#include<stack>
using namespace std;
bool flag;
int cnt,cntt,minn=;
int vis[],dis[],inq[];
vector<int>v[],fa[];
queue<int>q;
void pre(int x){//预处理,删去不符合条件的点。
for(int i = ;i < fa[x].size();i++)
vis[fa[x][i]] = ;
}
void spfa(int a){
memset(dis,,sizeof(dis));//距离数组初始化最大;
int s;
q.push(a);
dis[a] = ;
inq[a] = ;//判断是否在队列中
while(!q.empty()){
s = q.front();q.pop();//取队首。
for(int i = ;i < v[s].size();i++){
if(!vis[v[s][i]]&&dis[s]+<dis[v[s][i]]){//目标节点合法,且距离更短,
dis[v[s][i]] = dis[s]+;//更新这个点;
if(!inq[v[s][i]])
q.push(v[s][i]),inq[v[s][i]]=;//把这个点加入队列。
}
}
inq[s] = ;
}
}
int main(){
int n,m,a,b;
freopen("road.in","r",stdin);
freopen("road.out","w",stdout);
scanf("%d%d",&n,&m);
for(int i = ;i <= m;i++){
scanf("%d%d",&a,&b);
v[a].push_back(b);
fa[b].push_back(a);
}
scanf("%d%d",&a,&b);
if(!fa[b].size()){
printf("-1\n");
return ;
}
for(int i = ;i <= n;i++)
if(!v[i].size()&&i!=b)
pre(i);//对没有出边的节点进行预处理;
spfa(a);
if(dis[b]==dis[])
printf("-1\n");
else printf("%d\n",dis[b]);
return ;
}

最新文章

  1. 引用类型-Function类型
  2. mac boot2docker certs not valid with 1.7
  3. C#微信公众平台开发—高级群发接口
  4. Tomcat and solr 环境配置
  5. centos升级mysql至5.7
  6. tyvj100题留念
  7. spring加载jar包中多个配置文件
  8. win7 64位下如何安装配置mysql-5.7.4-m14-winx64
  9. SQL 分组排序、CASE...WHEN...、是否为空 查询
  10. 微信客户端+微信公众平台+新浪云SAE+Arduino+WS100(控制LED)
  11. python入门(3)python的解释器
  12. Python多进程并发(multiprocessing)
  13. IOS绘图的核心步骤
  14. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:
  15. 思科恶意加密TLS流检测论文记录——由于样本不均衡,其实做得并不好,神马99.9的准确率都是浮云啊,之所以思科使用DNS和http一个重要假设是DGA和HTTP C&amp;C(正常http会有图片等)。一开始思科使用的逻辑回归,后面17年文章是随机森林。
  16. tomcat 闪退处理
  17. MessagePack 学习笔记
  18. ionic4 ios调试打包
  19. STM32CubeMX介绍、下载与安装
  20. 我所认识的PCA算法的princomp函数与经历 (基于matlab)

热门文章

  1. 如何给main传参数
  2. WinEdt 10 - revise the day to register
  3. wamp下多域名配置问题
  4. ExpandoObject动态类生成属性转json
  5. iOS程序中的内存分配 栈区堆区全局区
  6. javascript数据结构和算法
  7. AIX 5L 系统管理技术 —— 存储管理——卷组
  8. IE环境下判断IE版本的语句...[if lte IE 6]……[endif][if lte IE 7]……[endif]
  9. 简单粗暴地理解 JavaScript 原型链 (一个充满歪门邪理的理解方法,有助于新手哦!)
  10. idea转eclipse 设置注意。