CF542C Idempotent functions
题目描述
前不久,Leonid 了解到了幂等函数。定义在集合 $\\{1,2,\dots,n\\}$ 上的幂等函数 $g$ 满足如下条件:对于任意 $x$,恒有 $g(g(x)) = g(x)$。
我们用 $f^{(k)}(x)$ 表示函数 $f$ 对 $x$ 连续应用 $k$ 次后的结果。更正式地,$f^{(1)}(x) = f(x)$,对于每个 $k > 1$,有 $f^{(k)}(x) = f(f^{(k-1)}(x))$。
现给定一个函数 $f$,请你求出最小的正整数 $k$,使得 $f^{(k)}(x)$ 成为幂等函数。
输入格式
第一行包含一个整数 $n$($1 \leq n \leq 200$),表示函数 $f$ 的定义域大小。
第二行包含 $f(1), f(2), \dots, f(n)$(对于每个 $1 \leq i \leq n$,有 $1 \leq f(i) \leq n$),即函数 $f$ 的各个值。
输出格式
输出最小的正整数 $k$,使得 $f^{(k)}(x)$ 是幂等函数。
说明/提示
在第一个样例中,函数 $f(x) = f^{(1)}(x)$ 已经是幂等函数,因为 $f(f(1)) = f(1) = 1$, $f(f(2)) = f(2) = 2$, $f(f(3)) = f(3) = 2$, $f(f(4)) = f(4) = 4$。
在第二个样例中:
- $f(x) = f^{(1)}(x)$ 不是幂等函数,因为 $f(f(1)) = 3$ 但 $f(1) = 2$;
- $f(x) = f^{(2)}(x)$ 是幂等函数,因为对于任意 $x$ 都有 $f^{(2)}(x) = 3$,故 $f^{(2)}(f^{(2)}(x)) = 3$ 也成立。
在第三个样例中:
- $f(x) = f^{(1)}(x)$ 不是幂等函数,因为 $f(f(1)) = 3$ 但 $f(1) = 2$;
- $f(f(x)) = f^{(2)}(x)$ 也不是幂等函数,因为 $f^{(2)}(f^{(2)}(1)) = 2$ 但 $f^{(2)}(1) = 3$;
- $f(f(f(x))) = f^{(3)}(x)$ 是幂等函数,因为它是单位函数:对于任意 $x$,$f^{(3)}(x) = x$,因此 $f^{(3)}(f^{(3)}(x)) = f^{(3)}(x)$ 也成立。
由 ChatGPT 5 翻译