AT_arc083_d.[ARC083F] Collecting Balls

NOI/NOI+/CTSC

通过率:0%

AC君温馨提醒

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

题目描述

在 xyxy 平面上有 2N2N 个球,第 ii 个球的位置为 (xi, yi)(x_i,\ y_i)。这里,对于每个 ii,xi, yix_i,\ y_i 均为不小于 11 且不大于 NN 的整数,且没有两个球处于同一位置。

Sune君为了收集这些球,准备了 NN 台 A 型机器人和 NN 台 B 型机器人。A 型机器人分别放置在 (1, 0), (2, 0), ..., (N, 0)(1,\ 0),\ (2,\ 0),\ ...,\ (N,\ 0),B 型机器人分别放置在 (0, 1), (0, 2), ..., (0, N)(0,\ 1),\ (0,\ 2),\ ...,\ (0,\ N)。

这两种类型的机器人启动时的动作如下:

  • A 型机器人从 (a, 0)(a,\ 0) 启动后,会回收直线 x=ax = a 上纵坐标 yy 最小的球并停止。如果该直线上没有球,则不进行操作直接停止。
  • B 型机器人从 (0, b)(0,\ b) 启动后,会回收直线 y=by = b 上横坐标 xx 最小的球并停止。如果该直线上没有球,则不进行操作直接停止。

每个机器人在停止后无法再次启动。在有机器人正在工作时,必须等其停下才能启动下一台机器人。

Sune君发现,机器人的启动顺序可能会导致无法收集全部的球。

在所有可能的 $ (2N)! $ 种启动顺序中,能够收集所有球的有效顺序有多少种?请输出其对 1, ⁣000, ⁣000, ⁣0071,\!000,\!000,\!007 的余数。

输入格式

输入通过标准输入给出。

$ N $ $ x_1 $ $ y_1 $ $ ... $ $ x_{2N} $ $ y_{2N} $

输出格式

输出能够收集所有球的机器启动顺序种数,结果对 1, ⁣000, ⁣000, ⁣0071,\!000,\!000,\!007 取余。

输入输出样例

  • 输入#1

    2
    1 1
    1 2
    2 1
    2 2

    输出#1

    8
  • 输入#2

    4
    3 2
    1 2
    4 1
    4 2
    2 2
    4 4
    2 1
    1 3

    输出#2

    7392
  • 输入#3

    4
    1 1
    2 2
    3 3
    4 4
    1 2
    2 1
    3 4
    4 3

    输出#3

    4480
  • 输入#4

    8
    6 2
    5 1
    6 8
    7 8
    6 5
    5 7
    4 3
    1 4
    7 6
    8 3
    2 8
    3 6
    3 2
    8 5
    1 5
    5 8

    输出#4

    82060779
  • 输入#5

    3
    1 1
    1 2
    1 3
    2 1
    2 2
    2 3

    输出#5

    0

说明/提示

限制

  • 2≤N≤1052 \le N \le 10^5
  • 1≤xi≤N1 \le x_i \le N
  • 1≤yi≤N1 \le y_i \le N
  • 对于 i≠ji \ne j,有 xi≠xjx_i \ne x_j 或 yi≠yjy_i \ne y_j

样例解释 1

将放置在 (1,0), (2,0)(1,0),\ (2,0) 的机器人分别记为 A1, A2,将放置在 (0,1), (0,2)(0,1),\ (0,2) 的机器人分别记为 B1, B2。此时,满足条件的启动顺序共有如下 88 种:

  • A1, B1, A2, B2
  • A1, B1, B2, A2
  • A1, B2, B1, A2
  • A2, B1, A1, B2
  • B1, A1, B2, A2
  • B1, A1, A2, B2
  • B1, A2, A1, B2
  • B2, A1, B1, A2

因此输出 88。

样例解释 5

如果不存在满足条件的启动顺序,则输出 00。

由 ChatGPT 5 翻译

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

首页