QOJ.ac

QOJ

时间限制: 3 s 内存限制: 64 MB 总分: 100 可 Hack ✓

#2490. 五角星查询

统计

如今,5G 移动通信标准正在全球范围内普及。但进步永无止境,Lucifer 实验室的研究人员正在努力开发一种新的通信标准。这项开发成果极具创新性,以至于他们决定将新标准命名为 666G,而不是 6G。研究人员声称,这项技术甚至能让人联络到撒旦本人。

这项新技术可以描述如下:$k$ 个通信塔(可视为平面上的点)位于一个凸 $k$ 边形的顶点上。任意五个不同的塔构成一个五角星的顶点,并允许为五角星各边所围成的五边形内部的用户提供服务。

你的任务是使用一个模型示例来测试通信塔的负载。假设有 $n$ 个用户,他们可以被视为位于由 $k$ 个通信塔构成的凸 $k$ 边形内部平面上的点。我们假设用户的位置不会改变。对于每个用户,已知其当前是否处于活跃状态。

此外,按时间顺序排列着 $q$ 个事件,事件分为两类:

  1. 编号为 $t$ 的用户改变其活跃状态。即,如果该用户之前是活跃的,则变为不活跃,反之亦然。
  2. 对于给定的五个不同的通信塔,需要确定由这五个塔服务的活跃用户数量。

你需要模拟所有事件并响应所有第 2 类请求。

输入格式

第一行包含一个整数 $k$ —— 通信塔的数量 ($5 \le k \le 30$)。

接下来的 $k$ 行,第 $i$ 行包含两个整数 $X_i$ 和 $Y_i$ —— 第 $i$ 个通信塔的坐标。保证通信塔位于一个严格凸 $k$ 边形的顶点上,即任意三点不共线。塔的坐标按遍历该 $k$ 边形的顺时针顺序给出。

接下来一行包含一个整数 $n$ —— 用户的数量 ($1 \le n \le 50\,000$)。

接下来的 $n$ 行,第 $i$ 行包含三个整数 $x_i, y_i$ 和 $z_i$ —— 第 $i$ 个用户的坐标及其活跃状态。$z_i = 1$ 表示第 $i$ 个用户处于活跃状态,$z_i = 0$ 表示不活跃。保证所有用户都严格位于由通信塔构成的凸 $k$ 边形内部。没有用户位于连接任意两个通信塔的线段上。

接下来一行包含一个整数 $q$ —— 事件的数量 ($1 \le q \le 50\,000$)。

接下来的 $q$ 行,每行描述一个事件。第 1 类事件格式为 “1 $t$”,其中 $t$ 是活跃状态发生改变的用户编号 ($1 \le t \le n$)。第 2 类事件格式为 “2 $a_i$ $b_i$ $c_i$ $d_i$ $e_i$”,其中 $a_i, b_i, c_i, d_i, e_i$ 是通信塔的索引,你需要确定由这五个塔服务的活跃用户数量 ($1 \le a_i < b_i < c_i < d_i < e_i \le k$)。

保证至少有一个第 2 类请求。

所有点的坐标均为整数,绝对值不超过 $5 \times 10^5$。输入中没有两个点是相同的。

输出格式

输出 $p$ 行,其中 $p$ 是第 2 类事件的数量。在第 $i$ 行,输出一个整数 —— 第 $i$ 个第 2 类查询的答案。

样例

样例输入 1

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

样例输出 1

2
2
3
3
1
0
1

说明

样例中的点配置如上图所示。

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.