Description

在另一个平行宇宙中,有一个神奇的国度名叫天朝。天朝一共有N个城市(标号分别为1, 2, …, N),M条道路,为了方便交通管制,天朝的M条道路都是单行道。
不久前天朝大选,小Q当选了天朝的总统。小Q家住在城市1,但天朝的办公地点在城市N,于是为了便于工作,小Q决定举家从城市1搬迁到城市N去居住。然而小Q惊奇的发现,现在并不存在从城市1出发到城市N路线。
但这点难题是无法阻挡天朝总统的,小Q决定行使总统的权利下令更改一些道路的通行方向,使得至少存在一条从城市1出发到城市N的路线,但为了节省时间和资源,他希望更改通行方向的道路尽可能少,你能帮帮小Q吗?

Input

输入包含多组测试数据。
对于每组测试数据,第一行包含两个正整数N (2<=N<=5000)、M (1<=M<=10000),表示天朝一共有N个城市、M条道路。接下来M行每行有两个正整数u、v (1<=u, v<=N),表示城市u和城市v之间有一条通行方向为u->v的单行道。两个城市之间可能有多条道路。

Output

对于每组测试数据,用一行输出一个整数表示最少需要更改多少条单行道的通行方向,才能使得至少存在一条路线能够让小Q从城市1出发到城市N。
如果没办法使得至少存在一条路线让小Q从城市1出发到城市N,则输出“-1”(不包括引号)。

Sample Input

2 1
1 22 1
2 12 0

Sample Output

0
1
-1

HINT

Source

2012暑期集训中期测试赛

建图是正向权值设为0,反向权值设为1,这样求出的最小生成树的值即为所求

#include <iostream>
#include <cstring>
#include <stdio.h>
#include <queue>
#define INF 0x3f3f3f3f
using namespace std;
int m,n;
int w[100005],v[60000],u[60000],first[60000],nex[60000],vis[60000],d[60000];
int e;
void add(int a,int b,int c)
{v[e]=b;u[e]=a;w[e]=c;nex[e]=first[a];first[a]=e++;
}
void spfa()
{memset(d,INF,sizeof(d));memset(vis,0,sizeof(vis));queue<int>q;d[1]=0;vis[1]=1;q.push(1);while(!q.empty()){//  printf("eehhe");int tmp=q.front();q.pop();vis[tmp]=0;for(int i=first[tmp];i!=-1;i=nex[i]){if(d[v[i]]>d[tmp]+w[i]){d[v[i]]=d[tmp]+w[i];if(!vis[v[i]]){q.push(v[i]);vis[v[i]]=1;}}}}
}
int main()
{// freopen("in.txt","r",stdin);while(scanf("%d%d",&n,&m)!=EOF){e=0;int a,b;memset(first,-1,sizeof(first));for(int i=0;i<m;i++){scanf("%d%d",&a,&b);add(a,b,0);add(b,a,1);}spfa();if(d[n]!=INF)printf("%d\n",d[n]);elseprintf("-1\n");}
}

coj 1256 天朝的单行道相关推荐

  1. NUPT大二队员淘汰赛1题解

    NUPT大二队员淘汰赛1 比赛链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=101409#overview 密码:acm1248   ...

  2. 中国版 Ubuntu Kylin 14.04 LTS 麒麟操作系统中文版发布下载 (Ubuntu天朝定制版)

    中国版 Ubuntu Kylin 14.04 LTS 麒麟操作系统中文版发布下载 (Ubuntu天朝定制版) http://www.iplaysoft.com/ubuntukylin.html

  3. 【单调栈】奶牛的歌声(jzoj 1256)

    奶牛的歌声 jzoj 1256 题目大意 有n头牛,每头牛的声音可以被两边第一头比他高的牛所听到,音量为S,问听到声音的音量之和最大的牛听到的音量之和是多少 输入样例 3 4 2 3 5 6 10 输 ...

  4. 信息学奥赛一本通(1256:献给阿尔吉侬的花束)

    1256:献给阿尔吉侬的花束 时间限制: 1000 ms         内存限制: 65536 KB 提交数: 7427     通过数: 3067 [题目描述] 阿尔吉侬是一只聪明又慵懒的小白鼠, ...

  5. 51Nod 1256 乘法逆元 Label:exgcd

    1256 乘法逆元 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 给出2个数M和N(M < N),且M与N互质,找出一个数K满足0 < K < N且K ...

  6. 为什么天朝互联网的三巨头是BAT

    B即百度,A即阿里巴巴,T即腾讯,BAT是天朝互联网三巨头的简称.需要问的问题是,为什么天朝互联网的三巨头是BAT?这需要仔细观察一下这三家公司都在做什么,给人们带来什么.以下先回顾一下众所周知的事情 ...

  7. 【算法学习笔记】28.枚举法 解题报告 SJTU OJ 1255 1256 魔戒

    1256. 你的魔戒?不,是你的魔戒.加强版 Description 在前往末日火山的途中,佛罗多与他的霍比特人同胞不幸被半兽人抓住了.半兽人要对每个霍比特人进行询问,以找出哪个霍比特人携带了至尊魔戒 ...

  8. 1256:献给阿尔吉侬的花束

    1256:献给阿尔吉侬的花束 时间限制: 1000 ms         内存限制: 65536 KB 提交数: 9651     通过数: 4023 [题目描述] 阿尔吉侬是一只聪明又慵懒的小白鼠, ...

  9. 天朝网络已将老衲搞哭在电脑前

    博客园第一篇随笔,原来在Blogspot写了段时间,最近我天朝万里长城升级, 我等小鸟已被压榨待尽. 2015年,新的一年,我换了新的博客,换了新的学习方向,不在整天钻研着路由器交换机, 不在分析各种 ...

  10. 404丨天朝BAT者……牛么?

    - 这是 程序人生 的第 042 条音频广播 - 404-Broadcast <摸着良心告诉我丨吾与天朝BAT者孰牛?> CAST: 古人:程序 翻译:小七 吾敲键盘八年有(yòu)余,而 ...

最新文章

  1. 前端学习笔记(五)-JavaScript语法基本概念
  2. Alibaba Nacos:搭建Nacos平台
  3. Spark学习之路 (五)Spark伪分布式安装
  4. Resin-IOException: write() forbidden after writer is closed
  5. 数论 —— 素性测试
  6. nosql----redis持久化详解
  7. quickServer介绍
  8. python字符串format格式化
  9. amazon s3_在Amazon S3上托管静态网站
  10. 唯一索引和普通索引的区别
  11. 微信小程序的图片上传及图片预览功能
  12. 软件项目风险管理(Project Risk Management)
  13. GooglePlay应用上架流程
  14. Python爬虫新手入门教学(十):爬取彼岸4K超清壁纸
  15. html5学习开发指南
  16. 互联网打印机协议IPP分析
  17. C#,图像二值化(13)——全局阈值的双峰平均值算法(Bimodal Thresholding)与源程序
  18. LuaBox积木编程开发手册-精编版
  19. LTspice基础教程-001.软件简介与安装
  20. 【机器学习】线性判别式(LDA/FLD)

热门文章

  1. 主机耳机没声音win10
  2. 全球创见者共话企业韧性 金蝶“数字员工”惊艳亮相
  3. linux系统下的动态壁纸,动态壁纸给Linux发行版添加活力背景
  4. matlab中plot画图的颜色线型
  5. 软件测试工程师职称评定细则
  6. Twitter技术主管回怼马斯克!马斯克:He’s fired!
  7. 使用dns-over-https 手动测试域名解析
  8. Matlab绘制树形图
  9. word树状分支图_word中插入树状图的两种方法
  10. 30天完成700万营业额,这家珠宝店的营销模式,值得借鉴!