#ABC296E. 转移游戏

转移游戏

转移游戏

题目描述

给定 NN 个数的序列 A=(A1,A2,,AN)A=(A_1,A_2,\ldots,A_N)。这里,每个 AiA_i (1iN)(1\le i\le N) 都满足 1AiN1 \le A_i \le N

高桥和青木将进行 NN 轮游戏。对于每个 i=1,2,,Ni=1,2,\ldots,N,第 ii 轮游戏按以下方式进行。

  1. 青木指定一个正整数 KiK_i
  2. 在得知青木指定的 KiK_i 之后,高桥选择一个介于 11NN 之间(含两端)的整数 SiS_i,并将其写在黑板上。
  3. 重复以下操作 KiK_i 次:将黑板上写着的整数 xx 替换为 AxA_x

如果经过 KiK_i 次迭代后黑板上写的是 ii,则高桥赢得第 ii 轮;否则青木获胜。

这里,KiK_iSiS_i 可以对每个 i=1,2,,Ni=1,2,\ldots,N 独立选择。

在双方都为了获胜而最优行动的情况下,求高桥获胜的轮数。

输入格式

输入按以下格式从标准输入给出:

NN
A1A_1 A2A_2 \ldots ANA_N

输出格式

输出在双方都为了获胜而最优行动的情况下,高桥获胜的轮数。

样例

3
2 2 3
2

在第一轮中,如果青木指定 K1=2K_1=2,那么无论高桥选择 S1S_11122 还是 33,都无法获胜。

例如,如果高桥在黑板上初始写下 S1=1S_1=1,那么两次操作会按如下方式改变这个数:12(=A1)1\to 2(=A_1)22(=A2)2\to 2(=A_2)。黑板上最终写着的数是 2(1)2(\neq 1),因此青木获胜。

另一方面,在第二轮和第三轮中,无论青木指定的 KiK_i 为何值,高桥都可以通过在黑板上初始写下 2233 来获胜。

因此,在双方都最优行动的情况下,高桥赢得两轮:第二轮和第三轮。所以应输出 22

2
2 1
2

在第一轮中,如果青木指定的 K1K_1 是奇数,高桥可以通过在黑板上初始写下 22 来获胜;如果是偶数,则写下 11

类似地,第二轮也有办法让高桥获胜。因此高桥可以赢得两轮:答案是 22

数据范围

  • 1N2×1051 \le N \le 2 \times 10^5
  • 1AiN1 \le A_i \le N
  • 输入中的所有值都是整数。
难度 提高
通过率
尝试 0
已通过 0
ID
2659
类型
传统题
Time Limit
2000ms
Memory Limit
1024MiB
上传者
标签