QOJ.ac

QOJ

Time Limit: 3 s Memory Limit: 64 MB Total points: 100

#13612. The Forest of Fangorn

Statistics

自进入法贡森林(Fangorn Forest)以来,矮人吉姆利(Gimli)一直感到不安。这里的树木有些不对劲!因此,吉姆利想要到达森林边缘的其中一个营地。然而,为了感到安全,吉姆利在任何时候都需要能够看到所有的树木。幸运的是,矮人的视力非常好:他们可以看无限远,并且能看清每一个方向。

法贡森林形成了一个矩形 $F$,其边界与坐标轴平行,顶点分别位于 $(0, 0)$ 和 $(w, h)$。森林中的所有 $N$ 棵树都位于 $F$ 的内部,而所有 $C$ 个营地(编号从 $1$ 到 $C$)都位于 $F$ 的边界上。任何树木都是笔直向上生长的(“垂直于地图平面向外”),可以被视为一个点。因此,当且仅当连接吉姆利当前位置与某棵树的线段上没有其他树木时,吉姆利才能从他的位置看到这棵树。

从任何一个营地出发,吉姆利都可以看到所有的树木。最开始,他位于森林的内部,但不在任何一棵树的位置上(矮人是不爬树的),并且他能看到所有的营地和所有的树木。由于法贡森林非常古老,因此不存在三棵树共线的情况。

如果存在一条从吉姆利的初始位置到营地 $c$ 的路径 $\gamma$,使得在 $\gamma$ 上的任意一点他都能看到所有的树木,那么吉姆利就可以安全地到达营地 $c$。请编写一个程序,帮助吉姆利找到所有他可以安全到达的营地。

输入格式

第一行包含两个整数 $w$ 和 $h$,表示上述矩形 $F$ 的大小。

第二行包含两个整数 $x_G$ 和 $y_G$,表示吉姆利初始位置的坐标。

第三行包含一个整数 $C$,表示营地的数量。接下来的 $C$ 行描述这些营地;其中第 $i$ 行包含两个整数 $x_i$ 和 $y_i$,表示第 $i$ 个营地的坐标。

接下来的一行包含一个整数 $N$,表示树木的数量。接下来的 $N$ 行描述这些树木;其中每行包含两个整数 $x$ 和 $y$,表示一棵树的坐标。保证没有两棵树的坐标是相同的。

输出格式

第一行应包含吉姆利可以安全到达的营地数量 $m$。

如果 $m \neq 0$,第二行应按升序输出这些营地的编号。

子任务

对于所有测试用例,满足 $3 \le N \le 2\,000$,$1 \le C \le 10\,000$,且 $0 < w, h \le 10^9$。

  • 子任务 1(30 分):$N \le 70$,$C \le 5$
  • 子任务 2(20 分):树木构成一个凸多边形的顶点,且 $N \le 200$,$C \le 5$
  • 子任务 3(30 分):$C \le 5$
  • 子任务 4(20 分):无其他限制。

样例

样例输入 1

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

样例输出 1

2
1 3

样例输入 2

9 4
1 2
1
8 4
4
1 1
6 1
3 3
4 3

样例输出 2

0

说明

第一个样例的情况以及从吉姆利的起点 $G$ 到(安全)可达营地的可能路径:

请注意,吉姆利在移动过程中允许离开森林。然而,即使在森林外部,他也必须能够看到所有的树木——否则他也能到达第二个营地。

反馈

本题提供部分反馈,即你可以看到测试用例中某个固定子集的评测结果,且公开得分会提示你的实际得分(实际得分可能更高或更低)。

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.