#P11118. [ROI 2024 Day 2] 无人机比赛

[ROI 2024 Day 2] 无人机比赛

题目背景

翻译自 ROI 2024 D2T3

nn 架无人机报名参加一个无人机比赛,第 ii 架无人机飞过一单位距离需要 tit_i 秒。

比赛在一条直线上进行,该直线上有 mm 个门,编号从 11mm,第 ii 个门位于距离比赛起点 sis_i 的位置。

因为赛道大小的限制,第一场比赛只会有前 kk 架无人机参与,编号从 11kkkk 的值由裁判在比赛开始前宣布,因此此时你需要对 kk11nn 的比赛情况进行分析。

比赛的进行方式如下:

无人机从 00 号点开始向门移动,每架无人机的速度不同。每架无人机都有一个存档点,即最后一个它进行了存档操作的门。最初,每架无人机的存档点都是 00 号点。

在比赛中,所有无人机从其存档点开始移动,直到有一架或多架无人机到达一个门(有可能是不同无人机同时到达不同的门)。此时,在所有到达门的无人机中,选择编号最小的无人机,对该无人机进行存档操作,将其存档点设置为当前的位置。其他无人机立即传送到其存档点。然后,比赛继续进行。

如果一架无人机在最后一个编号为 mm 的门上进行存档操作,那么它就完成了比赛。尚未完成的无人机将传送到其存档点继续比赛。当所有无人机都完赛时,比赛结束。

题目描述

传送是一个非常耗能的过程。为了准备比赛,你需要了解所有无人机在比赛结束之前一共将进行多少次传送。设 ckc_k 表示当前 kk 架无人机参与比赛时,所有无人机的总传送次数,则你需要求出 c1,c2,,cnc_1, c_2, \dots, c_n 的值。

输入格式

第一行包含两个整数 nnmm,分别表示无人机的数量和门的数量(2n1500002 \leq n \leq 1500001m1500001 \leq m \leq 150000)。

第二行包含 nn 个正整数 t1,t2,,tnt_1, t_2, \dots, t_ntit_i 表示第 ii 架无人机飞过一单位距离所需的秒数(1ti1091 \leq t_i \leq 10^9)。

第三行包含 mm 个正整数 s1,s2,,sms_1, s_2, \dots, s_msis_i 表示第 ii 个门的位置(1s1<s2<<sm1500001 \leq s_1 < s_2 < \dots < s_m \leq 150000)。

输出格式

输出 nn 个整数 c1,c2,,cnc_1, c_2, \dots, c_n,意义见题目描述。

3 3
1 2 3
1 3 6
0
4
11
3 3
3 2 1
1 3 6
0
5
13
2 5
2 1
1 3 4 6 7
0
6

提示

样例 11 解释:

k=1k=1,无需任何传送,因为只有一架无人机参加,只有它在一直存档。

k=2k=2 时,整个比赛的过程如下图所示。

k=3k=3 时,整个比赛的过程如下图所示。

各子任务特殊性质表格:

子任务 分值 nn\le mm\le tit_i\le sis_i\le 其它特殊性质
11 55 22 5050 100000100000 100000100000
22 77 5050
33 1313 10001000 55
44 99 100000100000 100000100000 si+1si=s1s_{i+1}-s_i=s_1
55 88 所有 tit_i 相等
66 1010 100100
77 55 100000100000 22
88 77 m=2m=2 100000100000
99 66 1000010000 100000100000
1010 5000050000
1111 88 100000100000
1212
1313