题意:

给你N个点表示N个站,有汽车和火车,汽车只能走公路,火车只能走铁路。

然后给你M条双向路,代表这两个点之间有铁路连接。

然后告诉你如果两个点之间没有铁路,那么就是公路连接。

问你汽车和火车都到达目的地所要的最小时间是多少(两种交通工具不能同时到达同一个城市除了目的地)。

如果有一种交通工具不能到达就输出-1;

思路:

如果两两点之间都是铁路,那么就没有公路,那么汽车不能到达,这时-1;

如果不是这种情况那么要么有铁路连接起点终点,要么有公路,所以两者间必有一个为1,

所以求另一个的最短路就行(肯定不会相撞)。(求两次最短路也行)。

复杂度N2;

 1 #include<stdio.h>
2 #include<algorithm>
3 #include<iostream>
4 #include<stdlib.h>
5 #include<vector>
6 #include<queue>
7 #include<cstdio>
8 #include<string.h>
9 void dj(int n);
10 const int V=99999999;
11 typedef struct pp
12 {
13 int x;
14 int y;
15 } ss;
16 using namespace std;
17 int flag[500];
18 int jj[500][500];
19 int d[500];
20 int main(void)
21 {
22 int n,i,j,k,p,q,N,M;
23 while(scanf("%d %d",&N,&M)!=EOF)
24 {
25 memset(flag,0,sizeof(flag));
26 for(i=0; i<450; i++)
27 {
28 for(j=0; j<450; j++)
29 {
30 jj[i][j]=V;
31 }
32 }
33 for(i=0; i<M; i++)
34 {
35 scanf("%d %d",&p,&q);
36 jj[p][q]=1;
37 jj[q][p]=1;
38 }
39 dj(N);
40 int ss=d[N];
41 for(i=0; i<450; i++)//求汽车的路径
42 {
43 for(j=0; j<450; j++)
44 {
45 if(jj[i][j]==V)
46 {
47 jj[i][j]=1;
48 }
49 else jj[i][j]=V;
50 }
51 }
52 dj(N);
53 int vv=d[N];
54 int uu=max(vv,ss);
55 if(uu>=V)
56 {
57 printf("-1\n");
58 }
59 else printf("%d\n",uu);
60
61 }
62 return 0;
63 }
64
65 void dj(int n)//最短路N2算法
66 {
67 fill(d,d+n+1,V);
68 fill(flag,flag+n+1,0);
69 d[1]=0;
70 int i,j,k,p,q;
71 while(true)
72 {
73 int l=-1;
74 for(i=1; i<=n; i++)
75 {
76 if(flag[i]==0&&(l==-1||d[i]<d[l]))
77 {
78 l=i;
79 }
80 }
81 if(l==-1)
82 {
83 break;
84 }
85 flag[l]=1;
86 for(i=1; i<=n; i++)
87 {
88 d[i]=min(d[i],d[l]+jj[l][i]);
89 }
90 }
91
92 }

最新文章

  1. vux 获取后台数据
  2. Python成长笔记 - 基础篇 (三)python列表元组、字典、集合
  3. 作用域内优先级及this指针
  4. wifi current SSID
  5. 英语学习APP—百词斩
  6. 深入理解HTTP协议(转)
  7. 【RL-TCPnet网络教程】第19章 RL-TCPnet之BSD Socket服务器
  8. [转]调整 VirtualBox 虚拟机的磁盘大小
  9. Kafka技术内幕 读书笔记之(六) 存储层——日志的读写
  10. TabLoaout简单框架
  11. Java获取数据库表 字段 存储的部分数据
  12. 二、主目录 Makefile 分析(3)
  13. vue-router路由管理器
  14. 直播 APP 的直播实现流程
  15. Linux内核分析-构造一个简单的Linux系统MenuOS
  16. 启动Solr时报 _version_ field must exist in schema 错误的解决方法
  17. HttpURLConnection与 HttpClient 区别/性能测试对比
  18. Openssl ciphers命令
  19. Jsp Cookie的创建与读取 标签: cookiejsp 2016-11-17 15:14 61人阅读 评论(0)
  20. java语言描述 用抽象类模拟咖啡机的工作

热门文章

  1. STM32 BootLoader升级固件
  2. CAS简介
  3. IT四大名著
  4. Hadoop【MR的分区、排序、分组】
  5. 零基础学习java------day27-28---------电影评分数据案例,. RPC案例
  6. MyBatis 如何实现流式查询
  7. Linux学习 - 使用qq邮箱发送邮件
  8. RecyclerView实现侧滑删除、置顶、滑动
  9. jquery的each和js原生for循环性能对比
  10. spring 事务处理中,同一个类中:A方法(无事务)调B方法(有事务),事务不生效问题