#P14871. [OOI2024 资格赛]Lunch午餐

[OOI2024 资格赛]Lunch午餐

题目描述

给定一个有 NN 个点的凸多边形。不保证任意三点不共线。多边形内部有 MM 个互不相同的特殊点。此外还给定一个点 CC,坐标为 (x0,y0)(x_0,y_0),它位于凸多边形内部,且不在边界上。

Alice 和 Bob 玩一个游戏,Alice 先手,双方轮流行动。每一回合,玩家必须选择多边形上一个不同于 CC 的顶点,并把它移动到点 CC。如果多边形中已经有顶点位于 CC,那么这些顶点会合并。

一次移动合法,当且仅当存在某个特殊点,它在移动前位于多边形内部,但在移动后不再位于多边形内部。保证无论经过多少次移动,特殊点都不会恰好位于多边形边界上。

移动之后,多边形不要求继续保持凸性,也可以退化,例如退化成一条线段。无法行动的玩家输掉游戏。

还有 qq 次修改,分为两种类型:

  • + x y:坐标为 (x,y)(x,y) 的点变为特殊点。保证该点此前不是特殊点。
  • - x y:坐标为 (x,y)(x,y) 的点不再是特殊点。保证该点此前是特殊点。

在初始状态以及每次修改之后,都需要判断如果双方都采取最优策略,谁会获胜。每次修改后,游戏都从初始多边形重新开始,只是特殊点集合变为修改后的集合。

输入格式

第一行包含三个整数 n,m,qn,m,q3n100003 \le n \le 100000m1000000 \le m \le 1000000q10000000 \le q \le 1000000),分别表示多边形点数、特殊点数量和修改次数。

第二行包含两个整数 x0,y0x_0,y_0109x0,y0109-10^9 \le x_0,y_0 \le 10^9),表示点 CC 的坐标。保证 CC 在给定多边形内部且不在边界上。

接下来 nn 行,每行包含两个整数 xi,yix_i,y_i109xi,yi109-10^9 \le x_i,y_i \le 10^9),表示多边形第 ii 个点的坐标。点按逆时针顺序给出。

接下来 mm 行,每行包含两个整数 xi,yix_i,y_i109xi,yi109-10^9 \le x_i,y_i \le 10^9),表示第 ii 个特殊点的坐标。保证任意时刻特殊点互不相同且位于多边形内部。

接下来 qq 行,每行包含一个字符 cc 和两个整数 x,yx,y,其中 cc+-,表示一次修改:

  • c=+c=+,则点 (x,y)(x,y) 变为特殊点。保证此前它不是特殊点;
  • c=c=-,则点 (x,y)(x,y) 不再是特殊点。保证此前它是特殊点。

保证任意时刻,经过任意次合法移动后,所有特殊点都不会位于多边形边界上。

输出格式

输出 q+1q+1 行。

第一行输出初始特殊点集合下的胜者。如果 Alice 必胜,输出 Alice;否则输出 Bob

之后第 ii 行输出第 i1i-1 次修改后的胜者,格式同上。

样例 #1

样例输入 #1

5 5 3
0 3
-4 -2
1 -4
5 0
1 4
-4 2
0 -1
-2 -1
-1 0
0 -3
-1 2
+ 4 0
+ -2 2
+ 0 2

样例输出 #1

Alice
Bob
Bob
Bob

样例解释

修改前的多边形如下:

初始凸多边形、点 CC 和特殊点。

第一步,Alice 可以移动坐标为 (4,2)(-4,-2) 的多边形顶点,移动后多边形如下:

Alice 第一步移动后的多边形。

在这个状态下,Bob 已经无法行动,因此 Bob 输掉游戏。

评分方式

测试数据包含 6 个测试组。只有通过该组以及若干指定的前置测试组,才能获得该组分数。Offline-testing 表示该组结果只会在比赛结束后公布。

组别 分数 附加限制 nn 附加限制 mm 附加限制 qq 依赖组 备注
0 - - 样例
1 16 n=3n=3 m3m \le 3 q=0q=0 -
2 13 n18n \le 18 m18m \le 18 q1q \le 1 1
3 15 - 0-2
4 17 n5000n \le 5000 m5000m \le 5000 q1q \le 1 1,2
5 21 m100000m \le 100000 q5000q \le 5000 0-2,4
6 18 - 0-5 Offline-testing