题库/YBT00379

#YBT00379. 公交旅行

    传统题 难度: 普及+ 标签>一本通分层图与状态扩展最短路堆优化Dijkstra
时间限制1000 ms
内存限制1024 MiB
通过率100%1 / 1 次提交
题目描述 查看题解 开始编程Alt+E

YBT00379 · 公交旅行

退出在线编程模式
普及+ 读懂题意,让每一次思考成为成长。
时间限制1000 ms
内存限制1024 MiB
通过率100%1 / 1 次提交

题目描述

在这个城市中有nn个站台和mm条公交线路,第ii条公交线路由tit_i个站台组成,记为 si,1,si,2,…,si,tis_i,1, s_i,2,…,s_i,t_i。在00时刻,第ii辆公交车会处在si,1s_i,1站台,之后每个时刻公交都会到达路线中的下一个站台。当公交车到达终点站后,它下一个时刻将会回到出发的站台,注意一个站台可能在一条线路中出现多次,但不会相邻。 在00时刻,蒜头处在站台11。如果在某一时刻蒜头和公交在同一个站台,那么蒜头就可以上这辆公交车,并在任意时刻下车,上下车的过程并不会花费时间。现在蒜头想要知道,如果他只乘坐公交车出行,他分别能最早在何时到达每个站台,或是告诉他这是不可能的。 注意,蒜头一次只能乘坐一辆车,但在通往某个站台的过程中,蒜头可以乘坐许多辆不同的公交车。

输入

输入的第一行是两个整数n,mn,m,分别表示站台和线路的个数。 接下来的mm行,每行的第一个数为tit_i,表示线路的长度,随后的tit_i个整数描述一条公交线路。

输出

共输出11行n−1n-1个数,第ii个数表示到达站台i+1i+1的最短时间。如果不能到达,输出−1-1。

输入样例

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

输出样例

2 3 4 6 3 -1 -1

提示

【数据规模】 100%的数据,ti≥2t_i≥2。

子任务编号子任务分值$n≤$$m≤$$Σt_i≤$
$1$$29$$50$$50$$300$
$2$$27$$10^3$$10^3$$2×10^4$
$3$$14$$5×10^3$$5×10^3$$10^5$
$4$$30$$10^5$$10^5$$2×10^5$

评测数据说明

本题使用按题意独立构造、以独立程序核对的训练数据及公开样例,共8个测试点,非原站或官方原始数据。总分100分。

题目信息

#1807
100%

1 次通过 · 1 次提交

练习难度 普及+
时间限制
1000ms
内存限制
1024MiB
上传者