#NOI2017F. 分身术
分身术
题目描述
"分!身!术!" ——小
平面上有 个小 的分身。定义一组分身占领的区域为覆盖这组分身的最小凸多边形。小 能力有限,每一时刻都会有若干分身消失。但在下一时刻之前,小 会使用
"分!身!术!"
使得这些消失的分身重新出现在原来的位置。小 想知道,每一时刻分身消失后,剩下的分身占领的区域面积是多少?
输入格式
输入第一行包含两个正整数 ,描述初始时分身的个数,和总时刻数。
接下来 行,第 行有两个整数 , ,描述第 个分身的位置。
接下来 行,每行的第一个整数 表示这一时刻有 个分身消失。接下来有 个非负整数 , ,... ,用于生成消失的分身的编号。
生成方式如下:
设上一个时刻中,分身占领面积的两倍为 。则该时刻消失的分身 , ,... 的编号为 :
特别的,在第一个时刻,我们认为上一个时刻中, ,即:第一个时刻消失的分身 , ,... 的编号为:
输出格式
按给出时刻的顺序依次输出 行,每行一个整数,表示该时刻剩余分身所占领区域面积的两倍。
6 2
-1 0
-1 -1
0 -1
1 0
0 1
0 0
3 1 3 6
2 0 1
3
2
数据范围与提示
对于所有数据,保证:
- 没有两个分身的坐标是完全相同的;
- ;
- 所有时刻的 之和不超过 ;
- 初始时,所有的 个分身占据区域面积大于 ;
- 定义所有 个分身所占据区域的 顶点集合 为 , 。在任意时刻中, 中至少存在两个未消失的分身。
由于 64 位操作系统的指针大小为 8 字节,在 LOJ 上将空间限制扩大为 。