远端评测题 1000ms 256MiB

交换灵魂

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

说明

输入文件: soul.in 输出文件: soul.out 时间限制: 1 Sec 内存限制: 256 MB

题目描述

有 $N$ 个人,分别被赋予从 $1$ 到 $N$ 的编号。最初,第 $i$ 个人的体内寄宿着自己的灵魂 $i$。

小明是专业人士,他可以执行这样的操作:选择任意两名不同的人,交换这两人体内寄宿的灵魂。

沉浸在这项操作中的小明,已经进行了多次这样的交换。操作的结果是,现在第 $i$ 个人的体内寄宿着灵魂 $D_i$。

此时,小明意识到,再进行 $K$ 次灵魂交换操作后,自己的操作能力就会消失。

他觉得让人们体内寄宿着他人的灵魂就放任不管太过可怜,因此希望让所有人都回到最初的状态——即每个人体内都寄宿着自己的灵魂。

此外,他担心如果还残留着操作能力,会忍不住想要使用,所以希望能恰好用完这 $K$ 次操作机会。

请判定:能否通过恰好 $K$ 次操作,让所有人都回到体内寄宿着自己灵魂的状态。

输入格式

第一行两个整数 $N$ 和 $K$。

第二行 $N$ 个整数 $D_1,D_2,...,D_N$。

输出格式

若能通过恰好 $K$ 次操作让所有人都回到体内寄宿着自己灵魂的状态,则输出 YES,否则输出 NO。

样例

2 1
2 1

YES

样例说明 #1

交换一次正好回到初始状态。

3 2
3 2 1

NO

样例说明 #2

交换一次能够回到初始状态,交换两次不能回到初始状态。

4 2
1 2 3 4
YES

样例说明 #3

目前的状态就是初始状态。任选两个人操作两次,仍然能够回到初始状态。

数据范围

  • 对于 12% 的数据,N10,K100N \leq 10, \, K \leq 100
  • 对于 36% 的数据,N1000,K1000N \leq 1000, \, K \leq 1000
  • 对于 76% 的数据,N200000,K200000N \leq 200000, \, K \leq 200000
  • 对于 100% 的数据,$2 \leq N \leq 200000, \, 1 \leq K \leq 10^{12}, \, 1 \leq D_i \leq N$,保证 1 到 NN 的每个值恰好出现一次。

2025年9月月赛-Div2普及

未参加
状态
已结束
规则
乐多
题目
6
开始于
2025-9-21 14:00
结束于
2025-9-21 16:00
持续时间
2 小时
主持人
参赛人数
20