时间限制:1s 内存限制:32MB

问题描述

有n个城市和m条双向铁路。对于任意两个不同的城市x和城市y,两个城市之间有双向铁路,否则有双向公路,通过任意一条直达公(铁)路花费一小时。城市x与城市y存在直达公(铁)路:乘坐汽(火)车可以从城市x到达城市y且中间不经过其它城市

一辆汽车和一辆火车停在城市1,它们有相同的目的地城市n。汽车只能走公路,火车只能走铁路。为了避免车祸的发生,汽车和火车不能在同一时间到达同一个城市(目的地城市n除外)。

现在xxx和yyy在城市1,他们想去城市n,xxx乘坐火车而yyy乘坐汽车。请你为他们规划路线,使得他们到达城市n所花费的时间T=max?(T_xxx,T_yyy)最小。

输入描述

第一行一个整数T(1≤T≤10)表示数据组数。

对于每组数据,第一行两个整数n(2≤n≤100),m(0≤m≤n(n-1)/2),接下来m行,每行两个整数u,v(1≤u,v≤n),表示城市u和城市v之间有一条双向铁路。

数据保证同一条铁路只会出现一次。

输出描述

对于每组数据,输出一行,如果xxx和yyy可以到达城市n,输出他们花费的最小时间,否则输出-1。

输入样例

1

4 3

1 3

1 4

2 4

输出样例

3

样例解释

样例如下图所示,其中铁路为实线,公路为虚线



xxx坐火车可从城市1直达城市4花费1小时

yyy坐汽车走1—2—3—4花费3小时

【题目链接】:

【题解】



铁路图上如果有从1-n的直接路径,就在公路图上做最短路;

否则在铁路图上做最短路;

因为有从1-n的直接路径的话,肯定走那条路最优;然后另外一个人怎么走都可以了;因为不会撞在一起(撞在n号节点是允许的);



【完整代码】

#include <bits/stdc++.h>
#define rep1(i,a,b) for (int i = a;i <= b;i++)
using namespace std;
#define pb push_back; const int MAXN = 100+10;
const int INF = 0x3f3f3f3f; bool bo[MAXN][MAXN];
vector <int> g[3][MAXN];
int dis[MAXN]; int main()
{
//freopen("F:\\rush.txt","r",stdin);
int T;
scanf("%d",&T);
while (T--)
{
memset(bo,false,sizeof(bo));
int n,m;
scanf("%d%d",&n,&m);
rep1(j,1,n)
g[1][j].clear(),g[2][j].clear();
rep1(i,1,m)
{
int x,y;
scanf("%d%d",&x,&y);
g[1][x].push_back(y);
g[1][y].push_back(x);
bo[x][y] = true;
bo[y][x] = true;
}
rep1(i,1,n)
rep1(j,1,n)
if (i!=j)
if (!bo[i][j])
g[2][i].push_back(j);
int t=1;
if (bo[1][n])
t = 2;
memset(dis,INF,sizeof(dis));
dis[1] = 0;
queue <int> dl;
dl.push(1);
while (!dl.empty())
{
int x = dl.front();
int len = g[t][x].size();
dl.pop();
rep1(i,0,len-1)
{
int y = g[t][x][i];
if (dis[y] > dis[x]+1)
{
dis[y] = dis[x]+1;
dl.push(y);
}
}
}
if (dis[n]>=INF)
puts("-1");
else
printf("%d\n",dis[n]);
}
return 0;
}

【C++竞赛 E】xxx和yyy的旅行的更多相关文章

  1. Aborted connection 1055898 to db: 'xxx' user: 'yyy' host: 'xxx.xxx.xxx.xxx' (Got timeout reading communication packets)

    mysql错误日志中,发现大量以下类似信息:(mysql 5.7.18) [Note] Aborted connection 1055898 to db: 'xxx' user: 'yyy' host ...

  2. 【C++竞赛 F】yyy的三角形

    时间限制:2s 内存限制:32MB 问题描述 yyy对三角形非常感兴趣,他有n个木棍,他正在用这些木棍组成三角形.这时xxx拿了两根木棍过来,xxx希望yyy能给他一根木棍,使得xxx可以组成一个三角 ...

  3. 旅行规划(travel)

    题目描述 OIVillage 是一个风景秀美的乡村,为了更好的利用当地的旅游资源,吸引游客,推动经济发展,xkszltl 决定修建了一条铁路将当地 nnn 个最著名的经典连接起来,让游客可以通过火车从 ...

  4. vs2017下发现解决python运行出现‘No module named "XXX""的解决办法

    对于使用vs2017开发python程序无疑发现,在解决方案资源管理器中设置把两个xxx.py,yyy.py文件都设置为启动文件,然后分别在vs2017这个IDE下运行这个两个文件在项目工程中运行,发 ...

  5. 点斜杠 & 如何查看linux程序安装位置 dpkg -L yyy

    方法1: sudo find / -name ssh 方法2: Ubuntu下 看应用程序安装路径的方法 ubuntu下dpkg -L xxx看应用程序安装路径 1.点斜杠 “./”就代表在当前目录下 ...

  6. LG1337 [JSOI2004]平衡点 / 吊打XXX 模拟退火

    问题描述 LG1337 题解 模拟退火模板 记住概率公式: \(exp(\frac{dealt}{T}) \times rand \ge R_A^ND^M_AX\) zzk太欧了,我交了一版没过他来了 ...

  7. bzoj3531——树链剖分+动态开点线段树

    3531: [Sdoi2014]旅行 Time Limit: 20 Sec  Memory Limit: 512 MB Description S国有N个城市,编号从1到N.城市间用N-1条双向道路连 ...

  8. Go语言的9大优势和3大缺点, GO语言最初的定位就是互联网时代的C语言, 我为什么放弃Go语言

    Go语言的9大优势和3大缺点 转用一门新语言通常是一项大决策,尤其是当你的团队成员中只有一个使用过它时.今年 Stream 团队的主要编程语言从 Python 转向了 Go.本文解释了其背后的九大原因 ...

  9. XMU 1071 圣斗士黄金十二宫(七)银河星爆 【计算几何】

    1071: 圣斗士黄金十二宫(七)银河星爆 Time Limit: 500 MS  Memory Limit: 64 MBSubmit: 193  Solved: 10[Submit][Status] ...

随机推荐

  1. php课程 12-40 抽象类的作用是什么

    php课程 12-40 抽象类的作用是什么 一.总结 一句话总结:定标准的 1.继承的关键词有哪两个? extendsparent 2.抽象类的实际意义是什么? 制造符合规范的产品你必须实现了抽象类里 ...

  2. HASH Partitioning--转载

    原文地址:https://dev.mysql.com/doc/refman/5.1/en/partitioning-hash.html HASH Partitioning [+/-] 18.2.3.1 ...

  3. HDU 2281 Square Number Pell方程

    http://acm.hdu.edu.cn/showproblem.php?pid=2281 又是一道Pell方程 化简构造以后的Pell方程为 求出其前15个解,但这些解不一定满足等式,判断后只有5 ...

  4. BZOJ3674可持久化并查集(模板)

    没什么可说的,就是一个可持久化线段树维护一个数组fa以及deep按秩合并好了 注意一下强制在线 蒟蒻的我搞了好长时间QAQ 贴代码: #include<cstdio> #include&l ...

  5. eclipse git冲突解决

    1.工程->Team->同步: 2.从远程pull至本地,就会出现如下内容: 3.使用Merge Tool,执行第二项 4.再手动修改 4.修改后的文件需要添加到Git index中去: ...

  6. Android提示版本号更新操作流程

    Android提示版本号更新操作流程 2014年5月8日: andorid的app应用中都会有版本号更新的操作,今天空暇的时候就花了点心思弄了一下.主要技术方面用到了AsyncTask异步载入.htt ...

  7. php函数symlink详解

    php函数symlink详解 建立符号链接 (symbolic link),类似于Windows里头常用的.lnk快捷方式 symlink语法: int symlink(string target, ...

  8. angular反向代理

    第一步:根目录新建 proxy.conf.json target:就是代理的服务器地址. 接口地址必须是http://localhost:8081/api开头 { "/api":{ ...

  9. Hypervisor, computer system, and virtual processor scheduling method

    A hypervisor calculates the total number of processor cycles (the number of processor cycles of one ...

  10. WP8日历(含农历)APP

    WP8日历(含农历)APP WP8日历(含农历)APP UI XAML(部分) <phone:PhoneApplicationPage xmlns:CustomControl="clr ...