题目名称 1877. [国家集训队 2011] 公交路线
输入输出 nt2011_bus.in/out
难度等级 ★★★☆
时间限制 2000 ms (2 s)
内存限制 512 MiB
测试数据 20
题目来源 Gravatarcstdio 于2014-12-15加入
开放分组 全部用户
提交状态
分类标签
LCA 树状数组 倍增法 扫描线法
分享题解
通过:7, 提交:28, 通过率:25%
Gravatarmcfx 100 4.116 s 72.03 MiB C++
Gravatar514flowey 100 4.333 s 22.94 MiB C++
Gravatar514flowey 100 4.430 s 45.54 MiB C++
Gravatar四季木哥 100 7.069 s 50.81 MiB C++
Gravatarcstdio 100 7.148 s 47.05 MiB C++
Gravatar炎帝 100 7.988 s 47.05 MiB C++
Gravatarmikumikumi 100 8.668 s 88.91 MiB C++
Gravatar四季木哥 30 14.509 s 25.88 MiB C++
Gravatar四季木哥 30 19.687 s 38.09 MiB C++
GravatarClaris 25 5.427 s 53.32 MiB C++
关于 公交路线 的近10条评论(全部评论)
这题数据范围不是说好的10000吗...结果能过的都至少得把数组开到100000...
Gravatar514flowey
2017-10-29 10:43 3楼
还是不懂为什么会T..加了读入优化就A了..是我写的程序普遍常数大吗?TAT
Gravatar四季木哥
2015-09-26 06:16 2楼
代码如此烦人……
解题报告:http://blog.sina.com.cn/s/blog_c5566b0f0102v81b.html
Gravatarcstdio
2014-12-15 19:52 1楼

1877. [国家集训队 2011] 公交路线

★★★☆   输入文件:nt2011_bus.in   输出文件:nt2011_bus.out   简单对比
时间限制:2 s   内存限制:512 MiB

【输入数据】

这是一道提交答案的试题,下面给出了该题的输入数据:

【问题描述】

Z市交通不发达,所有公交路线覆盖的边竟然一个环也不包含,甚至该市的公交路线有可能会分为几个互不连通的块,这可真是不可思议。有一天,你突然听到一条消息,说你的M个同学被困在了Z市里,他们分别要从他们当前所在的点ai移动到他们想去的点bi.于是你立刻调集资料,了解了Z市的形状和公交路线的分布,现在你要算出每个人到达目的地最少要换多少次车,或者告知那个人不能仅用公交车达到目的地。

【输入格式】

输入包含若干行,第一行为三个正整数N,T,M,分别表示站点数,公交路线数和同学的数量,站点的编号为1,2,3,…,N。

接下来N-1行,每行两个正整数x,y,表示站点x和站点y之间有一条道路,事实上构成了一棵树。

接下来T行,每行两个正整数s,t,表示有一条公交路线的起点站为s,终点站为t(反过来也有,线路是双向的,不用再输入了)。

最后M行,每行同样有两个正整数a,b,表示该同学想从站点a到站点b.

【输出格式】

输出包含M行,每行为一个整数,表示对相应同学的反馈。

如果这个整数是-1,表示该人不能仅用公交车达到目的地。

否则这是一个非负整数,表示该人需要换车的最少次数。

【样例输入】

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

【样例输出】

1
-1

【样例说明】

如果把公交线路按输入的顺序依次编号,从1到6,只需先乘1路车从1到3,然后换乘3路从3到6即可,而从4到7却无法仅用公交车,因为没有任何一路车覆盖2---1这条路。

【数据规模和约定】

25%的数据满足,N,T,M≤1000;

另外25%的数据满足,Z市是一条链;

还有另外25%的数据满足,如果Z市以1为根,那么每个公交线路的起点和终点一定是祖孙关系;

100%的数据满足,N,T,M≤100000.

【试题来源】

2011中国国家集训队命题答辩