QOJ.ac

QOJ

حد الوقت: 2 s حد الذاكرة: 512 MB مجموع النقاط: 100

#3838. 激光陷阱

الإحصائيات

BaoBao 最近在玩著名的游戏《艾尔登法环》(Elden Ring)。这是一款开放世界游戏,你可以在其中控制角色在不同地点间穿梭。然而,你的角色也可能陷入陷阱,你需要想办法逃脱。现在,BaoBao 的角色被困在一个充满致命激光的二维平面上。平面上有 $n$ 个激光发生器(每个都可以看作一个点),它们两两之间都会发射激光束(因此总共有 $\frac{n(n-1)}{2}$ 条激光束)。激光束的起点和终点均为发生器所在点,且不会延伸至无穷远。

BaoBao 希望从点 $(0, 0)$ 出发,逃离到点 $(10^{10^{10^{10^{10}}}}, 10^{10^{10^{10^{10}}}})$,且过程中不能触碰任何激光束或发生器。为了实现这一目标,BaoBao 可以请求她的朋友 DreamGrid 移除任意数量的激光发生器,以及所有以这些发生器为起点或终点的激光束。请输出为了逃脱所需要移除的激光发生器的最小数量。

注意,BaoBao 不需要沿着特定的方向逃脱。如果需要,她的逃脱路线甚至可以是一条曲线。

输入格式

输入包含多组测试数据。第一行包含一个整数 $T$,表示测试数据的组数。对于每组测试数据:

第一行包含一个整数 $n$ ($1 \le n \le 10^6$),表示激光发生器的数量。

接下来的 $n$ 行,第 $i$ 行包含两个整数 $x_i$ 和 $y_i$ ($-10^9 \le x_i, y_i \le 10^9$),表示第 $i$ 个激光发生器的位置。

保证没有两个发生器重合,且没有任何激光束或发生器会触碰到 $(0, 0)$。

同时保证所有测试数据的 $n$ 之和不超过 $10^6$。

输出格式

对于每组测试数据,输出一行,包含一个整数,表示为了逃脱所需要移除的激光发生器的最小数量。

样例

样例输入 1

3
2
1 0
2 0
3
1 0
0 1
-1 -1
5
2 -1
1 2
-1 2
-2 -1
0 -2

样例输出 1

0
1
2

说明

下图展示了第二组和第三组样例。实心点和实线表示保留的激光发生器和激光束,空心点和虚线表示被移除的激光发生器和激光束。箭头表示逃脱路线。

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.