CF1207D.Number Of Permutations

普及+/提高

通过率:0%

时间限制:2.00s

内存限制:256MB

AC君温馨提醒

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

题目描述

You are given a sequence of nn pairs of integers: (a1,b1),(a2,b2),…,(an,bn)(a_1, b_1), (a_2, b_2), \dots , (a_n, b_n). This sequence is called bad if it is sorted in non-descending order by first elements or if it is sorted in non-descending order by second elements. Otherwise the sequence is good. There are examples of good and bad sequences:

  • s=[(1,2),(3,2),(3,1)]s = [(1, 2), (3, 2), (3, 1)] is bad because the sequence of first elements is sorted: [1,3,3][1, 3, 3];
  • s=[(1,2),(3,2),(1,2)]s = [(1, 2), (3, 2), (1, 2)] is bad because the sequence of second elements is sorted: [2,2,2][2, 2, 2];
  • s=[(1,1),(2,2),(3,3)]s = [(1, 1), (2, 2), (3, 3)] is bad because both sequences (the sequence of first elements and the sequence of second elements) are sorted;
  • s=[(1,3),(3,3),(2,2)]s = [(1, 3), (3, 3), (2, 2)] is good because neither the sequence of first elements ([1,3,2])([1, 3, 2]) nor the sequence of second elements ([3,3,2])([3, 3, 2]) is sorted.

Calculate the number of permutations of size nn such that after applying this permutation to the sequence ss it turns into a good sequence.

A permutation pp of size nn is a sequence p1,p2,…,pnp_1, p_2, \dots , p_n consisting of nn distinct integers from 11 to nn (1≤pi≤n1 \le p_i \le n). If you apply permutation p1,p2,…,pnp_1, p_2, \dots , p_n to the sequence s1,s2,…,sns_1, s_2, \dots , s_n you get the sequence sp1,sp2,…,spns_{p_1}, s_{p_2}, \dots , s_{p_n}. For example, if s=[(1,2),(1,3),(2,3)]s = [(1, 2), (1, 3), (2, 3)] and p=[2,3,1]p = [2, 3, 1] then ss turns into [(1,3),(2,3),(1,2)][(1, 3), (2, 3), (1, 2)].

给你一个由 nn 个整数对组成的序列:(a1,b1),(a2,b2),…,(an,bn)(a_1, b_1), (a_2, b_2), \dots , (a_n, b_n)。若该序列按第一个元素非降序排列,或按第二个元素非降序排列,则称其为坏序列;否则称为好序列。以下是好序列与坏序列的示例:

  • s=[(1,2),(3,2),(3,1)]s = [(1, 2), (3, 2), (3, 1)] 是坏序列,因为第一个元素构成的序列 [1,3,3][1, 3, 3] 是非降序的;
  • s=[(1,2),(3,2),(1,2)]s = [(1, 2), (3, 2), (1, 2)] 是坏序列,因为第二个元素构成的序列 [2,2,2][2, 2, 2] 是非降序的;
  • s=[(1,1),(2,2),(3,3)]s = [(1, 1), (2, 2), (3, 3)] 是坏序列,因为第一个元素序列 [1,2,3][1, 2, 3] 和第二个元素序列 [1,2,3][1, 2, 3] 均为非降序;
  • s=[(1,3),(3,3),(2,2)]s = [(1, 3), (3, 3), (2, 2)] 是好序列,因为第一个元素序列 ([1,3,2])([1, 3, 2]) 和第二个元素序列 ([3,3,2])([3, 3, 2]) 均不是非降序的。

请计算满足如下条件的大小为 nn 的排列的个数:将该排列作用于序列 ss 后,所得序列是好序列。

大小为 nn 的排列 pp 是一个由 11 到 nn 中 nn 个互不相同的整数组成的序列 p1,p2,…,pnp_1, p_2, \dots , p_n(即对每个 ii,均有 1≤pi≤n1 \le p_i \le n)。若将排列 p1,p2,…,pnp_1, p_2, \dots , p_n 作用于序列 s1,s2,…,sns_1, s_2, \dots , s_n,则得到新序列 sp1,sp2,…,spns_{p_1}, s_{p_2}, \dots , s_{p_n}。例如,若 s=[(1,2),(1,3),(2,3)]s = [(1, 2), (1, 3), (2, 3)] 且 p=[2,3,1]p = [2, 3, 1],则 ss 变为 [(1,3),(2,3),(1,2)][(1, 3), (2, 3), (1, 2)]。

输入格式

The first line contains one integer nn (1≤n≤3⋅1051 \le n \le 3 \cdot 10^5).

The next nn lines contains description of sequence ss. The ii-th line contains two integers aia_i and bib_i (1≤ai,bi≤n1 \le a_i, b_i \le n) — the first and second elements of ii-th pair in the sequence.

The sequence ss may contain equal elements.

第一行包含一个整数 nn(1≤n≤3⋅1051 \le n \le 3 \cdot 10^5)。

接下来的 nn 行描述序列 ss。第 ii 行包含两个整数 aia_i 和 bib_i(1≤ai,bi≤n1 \le a_i, b_i \le n),表示序列中第 ii 个数对的第一个和第二个元素。

序列 ss 中可能包含相等的元素。

输出格式

Print the number of permutations of size nn such that after applying this permutation to the sequence ss it turns into a good sequence. Print the answer modulo 998244353998244353 (a prime number).

输出满足如下条件的大小为 nn 的排列的个数:对该排列作用于序列 ss 后,所得序列是一个“好序列”。答案对 998244353998244353(一个质数)取模。

输入输出样例

  • 输入#1

    3
    1 1
    2 2
    3 1

    输出#1

    3
  • 输入#2

    4
    2 3
    2 2
    2 1
    2 4

    输出#2

    0
  • 输入#3

    3
    1 1
    1 1
    2 3

    输出#3

    4

说明/提示

In first test case there are six permutations of size 33:

  1. if p=[1,2,3]p = [1, 2, 3], then s=[(1,1),(2,2),(3,1)]s = [(1, 1), (2, 2), (3, 1)] — bad sequence (sorted by first elements);
  2. if p=[1,3,2]p = [1, 3, 2], then s=[(1,1),(3,1),(2,2)]s = [(1, 1), (3, 1), (2, 2)] — bad sequence (sorted by second elements);
  3. if p=[2,1,3]p = [2, 1, 3], then s=[(2,2),(1,1),(3,1)]s = [(2, 2), (1, 1), (3, 1)] — good sequence;
  4. if p=[2,3,1]p = [2, 3, 1], then s=[(2,2),(3,1),(1,1)]s = [(2, 2), (3, 1), (1, 1)] — good sequence;
  5. if p=[3,1,2]p = [3, 1, 2], then s=[(3,1),(1,1),(2,2)]s = [(3, 1), (1, 1), (2, 2)] — bad sequence (sorted by second elements);
  6. if p=[3,2,1]p = [3, 2, 1], then s=[(3,1),(2,2),(1,1)]s = [(3, 1), (2, 2), (1, 1)] — good sequence.

在第一个测试用例中,存在六个长度为 33 的排列:

  1. 若 p=[1,2,3]p = [1, 2, 3],则 s=[(1,1),(2,2),(3,1)]s = [(1, 1), (2, 2), (3, 1)] —— 坏序列(按第一维元素排序);
  2. 若 p=[1,3,2]p = [1, 3, 2],则 s=[(1,1),(3,1),(2,2)]s = [(1, 1), (3, 1), (2, 2)] —— 坏序列(按第二维元素排序);
  3. 若 p=[2,1,3]p = [2, 1, 3],则 s=[(2,2),(1,1),(3,1)]s = [(2, 2), (1, 1), (3, 1)] —— 好序列;
  4. 若 p=[2,3,1]p = [2, 3, 1],则 s=[(2,2),(3,1),(1,1)]s = [(2, 2), (3, 1), (1, 1)] —— 好序列;
  5. 若 p=[3,1,2]p = [3, 1, 2],则 s=[(3,1),(1,1),(2,2)]s = [(3, 1), (1, 1), (2, 2)] —— 坏序列(按第二维元素排序);
  6. 若 p=[3,2,1]p = [3, 2, 1],则 s=[(3,1),(2,2),(1,1)]s = [(3, 1), (2, 2), (1, 1)] —— 好序列。

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

首页