#P15064. [UOI 2024 II Stage] Everyone Loves Permutations

[UOI 2024 II Stage] Everyone Loves Permutations

说明

一个长度为 nn 的排列是一个包含 11nn 所有整数的数组,且其所有元素两两不同。

Anton 在成长过程中玩过各种数组后,转向研究更有趣的数组——排列。在撰写论文时,他遇到了一个非常困难的问题。

他有一个长度为 nn 的排列 pp 和一个整数 kk。他决定构建一个大小为 (k+1)×n(k+1) \times n 的二维数组 aa

  • 对所有 jj1jn1 \leq j \leq n),a0j=ja_{0j}=j
  • 对所有 ii1ik1 \leq i \leq k)和 jj1jn1 \leq j \leq n),aij=a(i1)pja_{ij}=a_{(i-1)p_j}

p=[5,3,1,4,2]p=[5, 3, 1, 4, 2]k=3k=3,则我们得到以下数组。

$$\begin{array}{|c|c|c|c|c|c|} \hline a_{ij} & j=1 & j=2 & j=3 & j=4 & j=5 \\ \hline\hline i=0 & 1 & 2 & 3 & 4 & 5 \\ \hline i=1 & 5 & 3 & 1 & 4 & 2 \\ \hline i=2 & 2 & 1 & 5 & 4 & 3 \\ \hline i=3 & 3 & 5 & 2 & 4 & 1 \\ \hline \end{array}$$

对于每个 xx1xn1 \leq x \leq n),他想知道所有满足 aij=xa_{ij}=xjj 之和,其中 1ik1 \leq i \leq k。换句话说,他想求 kk 个数的和——即 xx 在每个 aia_i 中的索引。

考虑上一个例子。如果 x=1x=1,答案将是 3+2+5=103+2+5=10

经过一番思考和简单思路,Anton 很快解决了这个问题。现在他想看看你是否也能解决它。

输入格式

输入的第一行包含两个整数 nnkk1n1061 \le n \le 10^61k1091 \le k \le 10^9)——分别表示排列的长度和操作重复的次数。

第二行包含排列 pp1pin1 \le p_i \le n)。

输出格式

输出 nn 个整数,其中第 ii 个数是 x=ix=i 的答案。

3 2
2 1 3
3 3 6
5 3
5 3 1 4 2
10 9 8 12 6

提示

  • 88 分):k=1k = 1
  • 1717 分):pi=ip_i = i
  • 2626 分):n2000,k2000n \le 2000, k \le 2000
  • 2828 分):n2000n \le 2000,且对任意 iijj,存在 kk 使得 p[p[pp[i]]]=jp[p[p \dots p[i] \dots ]]=j,其中嵌套进行 kk 次;
  • 99 分):对任意 iijj,存在 kk 使得 p[p[pp[i]]]=jp[p[p \dots p[i] \dots ]]=j,其中嵌套进行 kk 次;
  • 1212 分):无额外限制。

翻译由 DeepSeek V3 完成