CF1984H.Tower Capturing

NOI/NOI+/CTSC

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

有 nn 个塔,分别位于 nn 个不同的点 (x1,y1),(x2,y2),…,(xn,yn)(x_1, y_1), (x_2, y_2), \ldots, (x_n, y_n),保证没有三点共线,也没有四点共圆。最开始,你拥有 (x1,y1)(x_1, y_1) 和 (x2,y2)(x_2, y_2) 这两个塔,你的目标是占领所有的塔。为此,你可以进行如下操作任意次:

  • 选择你已经拥有的两个塔 PP 和 QQ,以及一个你尚未拥有的塔 RR,要求经过 PP、QQ、RR 的圆能够包含所有 nn 个塔在其内部或边界上。
  • 然后,你可以占领在三角形 △PQR\triangle PQR 内部或边界上的所有塔,包括 RR 本身。

一次“攻击方案”是指一系列选择 RR(R1,R2,…,RkR_1, R_2, \ldots, R_k)的操作,最终使你占领了所有的塔。注意,只有当某一步选择的 RR 不同时,两个攻击方案才被认为是不同的;如果选择的 RR 相同,但 PP 和 QQ 不同,则认为是同一个方案。请你计算最短长度的攻击方案的数量。如果无法占领所有塔,输出 00。

由于答案可能很大,请输出对 998 244 353998\,244\,353 取模后的结果。

输入格式

第一行包含一个整数 tt(1≤t≤2501 \leq t \leq 250),表示测试用例的数量。

每个测试用例的第一行包含一个整数 nn(4≤n≤1004 \leq n \leq 100),表示塔的数量。

接下来的 nn 行,每行包含两个整数 xix_i 和 yiy_i(−104≤xi,yi≤104-10^4 \leq x_i, y_i \leq 10^4),表示第 ii 个塔的位置。最开始你拥有 (x1,y1)(x_1, y_1) 和 (x2,y2)(x_2, y_2) 这两个塔。

所有塔的位置均不相同,且没有三点共线,也没有四点共圆。

所有测试用例中 nn 的总和不超过 10001000。

输出格式

对于每个测试用例,输出一个整数,表示能够占领所有塔的最短攻击方案数量,对 998 244 353998\,244\,353 取模。

输入输出样例

  • 输入#1

    3
    5
    1 1
    2 5
    3 3
    4 2
    5 4
    6
    1 1
    3 3
    1 2
    2 1
    3 10000
    19 84
    7
    2 7
    -4 -3
    -3 6
    3 1
    -5 2
    1 -4
    -1 7

    输出#1

    1
    0
    10

说明/提示

在第一个测试用例中,只有一种最短的攻击方案,如下图所示。

  • 第一步,选择 P=P=塔 11,Q=Q=塔 22,R=R=塔 55。经过这三座塔的圆包含了所有塔,因此塔 33 和塔 55 都被占领。
  • 第二步,选择 P=P=塔 55,Q=Q=塔 11,R=R=塔 44。经过这三座塔的圆包含了所有塔,因此塔 44 被占领。

在第二个测试用例中,例如,位于 (3,10 000)(3, 10\,000) 的塔永远无法被占领。

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页