#D. 彩色点

    Type: Default File IO: color 1000ms 512MiB

彩色点

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

题目描述

好的,我会用自己的理解来翻译并调整措辞,使其更生动流畅自然且易于理解。以下是翻译后的内容:

我们来看平面上的 nn 个点,编号从 11nn,记为 P1,P2,,PnP_{1}, P_{2}, \ldots, P_{n},第 ii 个点的坐标为 (xi,yi)\left(x_{i}, y_{i}\right)

考虑以下过程。选择一个起始点 ii 和一个紧随其后的点 jj (ij)(i \neq j),以及一个整数 tt。然后按以下算法计算目标点 kk 的编号。考虑从点 PiP_{i} 指向点 PjP_{j} 的向量 PiPj\overrightarrow{P_{i} P_{j}}。将所有点(除了 jj)按逆时针方向从向量 PiPj\overrightarrow{P_{i} P_{j}} 的方向排序。如果角度相同,则按到点 jj 的距离排序。目标点 kk 是排序后第 tt 个点。然后点 jj 成为起始点,点 kk 成为紧随其后的点,重复上述算法计算新的目标点。这个过程无限重复。

为了更好地理解这个过程,我们来看一个例子。假设有 66 个点,如图 1 所示,t=4t=4。假设起始点编号为 11,紧随其后的点编号为 22。从点 P2P_{2} 出发,绘制向量 P1P2\overrightarrow{P_{1} P_{2}},并按逆时针方向排序所有点(除了 P2P_{2})。在图 2 中,虚线表示向量 P1P2\overrightarrow{P_{1} P_{2}},为了方便,还绘制了从点 P2P_{2} 到其他所有点的向量。

图 1:6 个点的例子\text{图 1:6 个点的例子}

$$\text{图 2:向量} \overrightarrow{P_{1} P_{2}} \text{以及从点} P_{2} \text{到其他所有点的向量} $$

点将按以下顺序排序:P3,P5,P1,P6,P4P_{3}, P_{5}, P_{1}, P_{6}, P_{4}。因此,目标点编号为 66。然后点 22 成为起始点,点 66 成为紧随其后的点。

在图 3 中,展示了起始点为 22,紧随其后的点为 66 的过程。点将按以下顺序排序:P4,P3,P2,P1,P5P_{4}, P_{3}, P_{2}, P_{1}, P_{5}。注意,点 P1P_{1} 在这个列表中排在 P5P_{5} 之前,因为点 P1P_{1} 到点 P6P_{6} 的距离小于点 P5P_{5} 到点 P6P_{6} 的距离。目标点编号为 11

在图 4 中,展示了起始点为 66,紧随其后的点为 11 的过程。注意,在这种情况下,从点 P1P_{1} 出发的向量 P6P1\overrightarrow{P_{6} P_{1}} 与从点 P1P_{1} 出发的向量 P1P5\overrightarrow{P_{1} P_{5}} 重合。这些向量用实线表示。点将按以下顺序排序:P5,P6,P4,P2,P3P_{5}, P_{6}, P_{4}, P_{2}, P_{3}。目标点编号为 22。因此,接下来过程将从起始点 11 和紧随其后的点 22 开始,并进入循环。

图 3:起始点为 2,紧随其后的点为 6 的过程

图 4:起始点为 6,紧随其后的点为 1 的过程

我们将每个点涂成三种颜色之一。第 ii 个点的颜色定义如下:

  • 如果存在一个点 jj,选择点 ii 作为起始点,点 jj 作为紧随其后的点,在上述过程中点 ii 将无限次成为起始点,则点 ii 被涂成绿色。
  • 如果点 ii 未被涂成绿色,并且存在一个点 jj,选择点 ii 作为起始点,点 jj 作为紧随其后的点,在上述过程中点 ii 至少再成为一次起始点,则点 ii 被涂成蓝色。
  • 如果点 ii 既未被涂成绿色,也未被涂成蓝色,则点 ii 被涂成红色。

确定每个点的颜色。

输入格式

第一行包含两个整数 nntt (2n1000,1tn1)(2 \leq n \leq 1000, 1 \leq t \leq n-1)

接下来的 nn 行中,每行包含两个整数 xix_{i}yiy_{i} (109xi,yi109)(-10^9 \leq x_{i}, y_{i} \leq 10^9)。保证没有两个点重合。

输出格式

输出一个由 nn 个字符组成的字符串:第 ii 个字符表示第 ii 个点的颜色。绿色点用字母 G 表示,蓝色点用字母 B 表示,红色点用字母 R 表示。

6 4
-1 -1
1 -2
4 -2
2 -4
2 3
-4 -5
GGBBRG

我们来看第一个样例中的一些点。

P1P_{1} 被涂成绿色,因为可以选择点 P2P_{2} 作为紧随其后的点,过程将无限次访问点 P1P_{1}。这个例子在题目中已经解释过。

可以证明,点 P3P_{3} 不是绿色的,但它是蓝色的,因为可以选择点 11 作为紧随其后的点,点 33 将至少再成为一次起始点。起始点为 11,紧随其后的点为 33 的过程在图 5、6 和 7 中展示。

对于起始点 33 和紧随其后的点 11,点将按以下顺序排序:P6,P4,P2,P3,P5P_{6}, P_{4}, P_{2}, P_{3}, P_{5}。点 33 成为目标点。然后对于起始点 11 和紧随其后的点 33,点将按以下顺序排序:P5,P1,P2,P6,P4P_{5}, P_{1}, P_{2}, P_{6}, P_{4}。点 66 成为目标点。最后,对于起始点 33 和紧随其后的点 66,点将按以下顺序排序:P4,P3,P2,P1,P5P_{4}, P_{3}, P_{2}, P_{1}, P_{5}。点 11 成为目标点。然后

过程继续,起始点为 66,紧随其后的点为 11。从题目中的例子我们知道,过程将进入循环,访问点 661122

图 5:起始点为 3,紧随其后的点为 1 的过程

图 6:起始点为 1,紧随其后的点为 3 的过程

图 7:起始点为 3,紧随其后的点为 6 的过程
2 1
1 1
2 2
GG

在第二个样例中,可以很容易地证明,如果一个点是起始点,另一个点是紧随其后的点,那么目标点将是原来的起始点。因此,这两个点都将被涂成绿色。

数据范围与提示

详细子任务附加限制及分值如下表所示。

子任务 分值 附加限制 子任务依赖
11 1010 n10n \leq 10,所有点在一条直线上
22 1515 所有点在一条直线上 11
33 1010 n10n \leq 10,保证没有蓝色点
44 1010 n10n \leq 10 1,31,3
55 1515 n100n \leq 100,保证没有蓝色点 33
66 1515 n100n \leq 100 1,3,4,51,3,4,5
77 55 n3n \geq 3,所有点是严格凸多边形的顶点,按逆时针顺序给出
88 2020 无附加限制 171\sim 7

NOIP模拟赛

Not Attended
Status
Done
Rule
OI
Problem
4
Start at
2024-10-23 8:00
End at
2024-10-23 12:00
Duration
4 hour(s)
Host
Partic.
26