AT_abc247_h.[ABC247Ex] Rearranging Problem

NOI/NOI+/CTSC

通过率:0%

AC君温馨提醒

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

题目描述

有 NN 个人,编号为 1,2,…,N1, 2, \dots, N,他们按照 (1,2,…,N)(1,2,\dots,N) 的顺序排成一列。第 ii 个人穿着颜色为 cic_i 的衣服。
高桥君进行了 KK 次操作,每次操作可以任选两个人 i,ji, j,交换他们的位置。
在 KK 次操作结束后,对于所有满足 1≤i≤N1 \leq i \leq N 的整数 ii,从前往后第 ii 个人所穿的衣服颜色都与 cic_i 一致。
请问在 KK 次操作结束后,可能出现多少种不同的人的排列方式?请将答案对 998244353998244353 取模后输出。

输入格式

输入以如下格式从标准输入中给出。

NN KK c1c_1 c2c_2 …\dots cNc_N

输出格式

请输出答案。

输入输出样例

  • 输入#1

    4 1
    1 1 2 1

    输出#1

    3
  • 输入#2

    3 3
    1 1 2

    输出#2

    1
  • 输入#3

    10 4
    2 7 1 8 2 8 1 8 2 8

    输出#3

    132

说明/提示

限制条件

  • 2≤N≤2000002 \leq N \leq 200000
  • 1≤K≤1091 \leq K \leq 10^9
  • 1≤ci≤N1 \leq c_i \leq N
  • 输入的所有数均为整数。

样例解释 1

高桥君的操作以及操作后可能的排列如下所示。

  • 将第 11 个人和第 22 个人交换位置。操作后排列为 (2,1,3,4)(2, 1, 3, 4)。
  • 将第 11 个人和第 44 个人交换位置。操作后排列为 (4,2,3,1)(4, 2, 3, 1)。
  • 将第 22 个人和第 44 个人交换位置。操作后排列为 (1,4,3,2)(1, 4, 3, 2)。

样例解释 2

举一个可能的高桥君的操作例子如下。

  • 第 11 次操作,将第 11 个人和第 33 个人交换位置。操作后排列为 (3,2,1)(3, 2, 1)。
  • 第 22 次操作,将第 22 个人和第 33 个人交换位置。操作后排列为 (2,3,1)(2, 3, 1)。
  • 第 33 次操作,将第 11 个人和第 33 个人交换位置。操作后排列为 (2,1,3)(2, 1, 3)。
    请注意,在操作过程中,从前往后第 ii 个人的衣服颜色不一定始终与 cic_i 一致。

由 ChatGPT 4.1 翻译

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

首页