#P11290. 【MX-S6-T2】「KDOI-11」飞船

    ID: 12430 远端评测题 2000ms 512MiB 尝试: 0 已通过: 0 显示难度提高 上传者: 标签>动态规划 DP贪心Special JudgeO2优化背包 DP梦熊比赛

【MX-S6-T2】「KDOI-11」飞船

背景

原题链接:https://oier.team/problems/S6B。

题目描述

巡造了一个很牛的飞船,巡为了测试她的飞船,造了一条无限远的从起点出发的射线作为跑道。在跑道上有 nn 个加油站,第 ii 个在距离起点 pip_i 的位置,巡可以在这里花费 tit_i 的时间加编号为 xix_i 的燃油,同一个加油站的油不能加两次,保证 1≤xi≤4\boldsymbol{1\leq x_i\leq 4} 且 xi\boldsymbol{x_i} 为整数。

巡的飞船牛在两个点:

  • 这个飞船油量消耗极低,在本题中可以忽略不计。也就是,我们不考虑油消耗殆尽的情况。
  • 如果给飞船加编号为 xx 的燃油,飞船的速度会从 vv 提升为 v×xv\times x。需要注意的是,燃油的效果能叠加。

现在,巡给出了 qq 次询问。每次巡会将终点设在跑道上距离起点 yiy_i 的位置,从起点出发,将飞船速度设定为 11 单位每时间,途径的每个加油站可以自由选择是否加油。你需要告诉巡每次至少需要多少时间才能到达终点(即 yiy_i)。

输入格式

第一行,两个正整数 n,qn,q,表示加油站个数和询问个数。

接下来 nn 行,每行三个正整数 pi,ti,xip_i,t_i,x_i,分别表示第 ii 个加油站距离起点的距离、加油需要的时间和燃油的编号。加油站按 pip_i 严格升序给出,即 pi<pi+1p_i < p_{i + 1}。保证 1≤xi≤41\leq x_i\leq 4。

接下来一行,qq 个正整数 y1,…,yqy_1, \ldots, y_q,表示询问。

输出格式

qq 行,每行一个非负实数,表示答案。

本题使用自定义校验器检验你的答案是否正确,你只需要保证你的答案与标准答案相对或绝对误差不超过 10−610^{-6} 即可。即如果对每个询问,假设你的答案为 xx,而标准答案为 yy,都有 $\frac{\lvert x-y\rvert}{\max(1,\lvert y\rvert)}\leq 10^{-6}$,则你的答案被认为是正确的。

4 4
1 1 1
3 1 2
8 5 2
10 100 3
1 4 10 1000
1
4
7.5
194.5

提示

【样例解释 #1】

  • 对询问 y1=1y_1=1,不加油,需要时间为 11。
  • 对询问 y2=4y_2=4,不加油,需要时间为 44。
  • 对询问 y3=10y_3=10,在位于起点 33 单位距离的加油站 22 加 22 号燃油,速度提升为 22,需要时间为 3+1+10−32=7.53+1+\frac{10-3}{2}=7.5。

【样例 #2】

见附件中的 ship/ship2.in 与 ship/ship2.ans。

该组样例满足测试点 1∼31\sim 3 的约束条件。

【样例 #3】

见附件中的 ship/ship3.in 与 ship/ship3.ans。

该组样例满足测试点 5∼75\sim 7 的约束条件。

【样例 #4】

见附件中的 ship/ship4.in 与 ship/ship4.ans。

该组样例满足测试点 18∼2018\sim 20 的约束条件。

【数据范围】

对于所有测试数据,保证:1≤n≤1051\leq n\leq 10^5,1≤q≤1051\leq q\leq10^5,1≤p1<p2<⋯<pn≤1091\leq p_1<p_2<\dots<p_n\leq 10^9,1≤ti≤1091\leq t_i\leq10^9,1≤xi≤41\leq x_i\leq4,1≤yi≤1091\leq y_i\leq 10^9。

测试点编号 n≤n\leq q≤q\leq xi∈x_i\in pi,yi≤p_i,y_i\leq
1∼31\sim 3 1010 {1,2,3,4}\{1,2,3,4\} 10910^9
44 10510^5 {1}\{1\}
5∼75\sim 7 100100 {1,2,3,4}\{1,2,3,4\} 10001000
8∼98\sim 9 10510^5 10510^5 {1,2}\{1,2\} 10910^9
10∼1310\sim 13 {1,2,4}\{1,2,4\}
14∼1714\sim 17 1010 {1,2,3,4}\{1,2,3,4\}
18∼2018\sim 20 10510^5