题目名称 2305. [CTSC 2016]时空旅行
输入输出 CTSC2016travel.in/out
难度等级 ★★★★
时间限制 5000 ms (5 s)
内存限制 1024 MiB
测试数据 20
题目来源 GravatarKZNS 于2016-05-12加入
开放分组 全部用户
提交状态
分类标签
凸包 线段树分治
查看题解 分享题解
通过:8, 提交:18, 通过率:44.44%
GravatarFlere825 100 0.023 s 67.07 MiB C++
Gravatarkvrmnks 100 0.038 s 80.42 MiB C++
Gravatarforeverpiano 100 0.113 s 90.93 MiB C++
Gravatar┭┮﹏┭┮ 100 20.281 s 145.42 MiB C++
Gravatar... 100 21.581 s 131.81 MiB C++
Gravatar梦那边的美好ET 100 21.608 s 131.81 MiB C++
Gravatarfrank_c1 100 27.326 s 583.51 MiB C++
Gravatarj31234 100 44.014 s 217.59 MiB C++
Gravatar┭┮﹏┭┮ 55 23.619 s 141.41 MiB C++
Gravatarstdafx.h 5 8.662 s 259.96 MiB C++
关于 时空旅行 的近10条评论(全部评论)
update on 2024.9.11 : 加入了LOJ的20组数据,并重测了 AC 了的代码
Gravatar┭┮﹏┭┮
2024-09-12 19:58 6楼
第1000题就这个了[!flag]
GravatarFoolMike
2017-10-09 11:52 5楼
其实这个可以强制在线
Gravatarstdafx.h
2017-09-17 10:24 4楼
加数据啊~~
Gravatarstdafx.h
2016-06-04 07:28 3楼
这就一组数据这题有什么意义·-·
Gravatar安呐一条小咸鱼。
2016-05-25 07:44 2楼
一眼看过去,可持久化K-D树的即时感 QAQ 我就会这点儿东西了 QAQ 
Gravatar葳棠殇
2016-05-24 08:06 1楼

2305. [CTSC 2016]时空旅行

★★★★   输入文件:CTSC2016travel.in   输出文件:CTSC2016travel.out   简单对比
时间限制:5 s   内存限制:1024 MiB

【题目描述】

   2045年,人类的技术突飞猛进,已经找到了进行时空旅行的方法。小R得到了一台时空旅行仪,他想用它调查不同时空中人类的发展状况。

   根据平行时空理论,宇宙中存在着很多独立的时空,每个时空在下一个时间点还会分化出若干个不同的时空。宇宙是一个三维空间,人类使用空间直角坐标系来描述空问中的一个位置,三维坐标分别是 x,y,z。

   我们假设在初始的时空(编号为0)中,人类存在于地球上(地球的坐标为

(0,0,0)),其它的时空都是从一个现有的时空发展而来。一个时空发生一个事件之后会发展成为另外一个时空(原来的时空不发生任何变化)。会影响小R的事件包括两类:

   人类殖民了一个新的星球,该星球的状态变成“己被殖民”;

   人类放弃了一个己被殖民的星球,该星球的状态变成“未被殖民”。

   每次进行时空旅行时,小R会先选定一个时空。在这个时空中,人类已经殖

民了一些星球。小R只要到达该时空中任意一个己被殖民的星球,就能调查人类

的发展状况。

   小R的时空旅行仪出现了一些问题,调整x坐标的按钮坏掉了,因此到达点的 x 坐标被固定了(每次旅行的x坐标值可能不同)。与此同时,他仍能任意调整到达点的 y 坐标和 z 坐标。

   这个问题大大增大了小R的花费:因为时空旅行没有花费,但在太空中航行却需要花钱;同时,在不同的星球进行调查也可能会产生不同的费用。

   假设小R将时空旅行的终点设为 A,他要进行调查的星球为 B:如果 A 与 B 的欧几里德距离为 d,那么他太空航行的花费就为 d^2;又如果星球 B 上进行调查的费用为 c,那么小R此次调查的总花费就为 d^2+c。

   现在给定小R每次旅行到达的时空以及时空旅行仪上固定的x坐标值,请你计算出小R每次旅行完成调查的最小总花费。

【输入格式】

输入的第一行包含三个非负整数 n,m,c0,n 表示平行时空数量,这些平行时空的编号为 0 到 n-1 的整数,初始时空的编号为 0。m 表示小R进行的时空旅行的次数,c0表示在地球进行调查的花费。保证 0 < n,m ≤5*10^5,0 ≤ c0 ≤ 10^12。

  接下来 n-1 行,依次描述平行时空 1 到 n-1,其中第 i 行分两种情况:

   ●  0 fr id x y z c:表示编号为 i 的平行时空由编号为 fr 的时空发展而来,数据保证人类殖民了一个编号为 id 的星球,该星球的坐标为(x,y,z),在该星球进行调查的花费为c。数据保证给出的星球编号不重复,且 O < id < n;保证 |x|,|y|,|z| ≤ 10^6,0 ≤ c ≤ 10^12。

   ●  1 fr id:表示编号为 i 的平行时空由编号为 fr 的时空发展而来,人类放弃了编号为 id 的星球。数据保证该星球在编号为 fr 的时空中处于被殖民的状态;保证 id > 0,即地球一定不会被放弃。


   上述两种情况中,各参数均为整数,相邻整数之间均用一个空格隔开;均保证 O ≤ fr < i。保证不会出现上述两种之外的情况。

   接下来 m 行,每行表示小R进行的一次时空旅行。每行包括 2 个整数 s 和 x0,表示小R到编号为 s 的平行时空进行了一次时空旅行,时空旅行仪上的 x 坐标被固定为了 x0。

【输出格式】

输出 m 行,分别表示每次旅行完成调查的最小总花费。

【样例输入】

4 2
0 0 1 8 2 3 7
0 1 2 10 1 6 2
1 1
1 4
2 8
2 6
3 8

【样例输出】

l8
6
11
66

【子任务】

测试点

n m 数据特点
1 ≤ 100
≤ 100
2~4 ≤ 10^5
≤ 10^5
人类不会放弃星球
5~6 每次旅行的 x 值相同
7~8
9~10 ≤ 5 * 10^5
≤ 5 * 10^5
每次旅行的 x 值相同
11~13

编号为 i 的时空由编号为 i-1 的发展而来且人类不会放弃星球

14~17 编号为 i 的时空由编号为 i-1 的时空发展而来
18~20

【来源】

CTSC2016 D1T1