QOJ.ac

QOJ

Time Limit: 2 s Memory Limit: 512 MB Total points: 100

#12778. 太空海盗

Statistics

在遥远的银河系中,有 $N$ 颗高度文明的星球,编号为 $1$ 到 $N$。每颗星球都提供一个传送器,每个传送器都有一个固定的目的地。我们只能沿一个方向通过传送器旅行。

银河帝国艺术博物馆在银河系的星球上举办艺术展览。现在展览在 1 号星球举行。下一次展览将在我们从 1 号星球出发,使用传送器旅行 $K$ 次后到达的星球举行。

太空警察发现一名太空海盗正计划窃取博物馆的藏品。太空海盗将侵入传送器系统,并非法覆盖 $a$ 号星球传送器的目的地。$a$ 号星球传送器的目的地将被修改为 $b$ 号星球。太空海盗只会侵入一颗星球的传送器系统。然而,太空警察无法确定 $a$ 和 $b$ 的确切值。

为了预测下一次展览的位置,太空警察想知道,对于每个 $i$,有多少对 $(a, b)$ 使得下一次展览将在 $i$ 号星球举行。计算这些数字是一项艰巨的任务。由于你是一名优秀的程序员,太空警察请求你来计算它们。

任务

给定每个传送器的目的地,对于每个 $i$,计算使得下一次展览在 $i$ 号星球举行的数对 $(a, b)$ 的数量。

输入格式

从标准输入读取以下数据。

  • 第一行包含两个空格分隔的整数 $N$ 和 $K$。这意味着银河系中有 $N$ 颗星球,下一次展览将在从 1 号星球出发使用传送器旅行 $K$ 次后到达的星球举行。
  • 接下来的 $N$ 行中的第 $i$ 行($1 \le i \le N$)包含一个整数 $A_i$($1 \le A_i \le N$)。这意味着 $i$ 号星球传送器当前的目的地是 $A_i$ 号星球。

输出格式

向标准输出写入 $N$ 行。第 $i$ 行($1 \le i \le N$)应包含一个整数,即使得下一次展览在 $i$ 号星球举行的数对 $(a, b)$ 的数量。

说明

  • $i$ 号星球传送器的目的地可能是 $i$ 号星球本身。在这种情况下,如果我们从 $i$ 号星球出发多次使用传送器,我们将停留在 $i$ 号星球。
  • 即使 $a$ 号星球传送器的当前目的地已经是 $b$ 号星球,太空海盗也可能侵入传送器系统并将目的地覆盖为 $b$ 号星球。在这种情况下,$a$ 号星球传送器的目的地仍然是 $b$ 号星球;它不会改变。在计算满足题目描述条件的数对 $(a, b)$ 时,应包含此类数对。

数据范围

所有输入数据满足以下条件:

  • $1 \le N \le 100\,000$
  • $N \le K \le 10^{18}$

子任务

  • 子任务 1 [10 分]:$N \le 100$
  • 子任务 2 [37 分]:$N \le 3\,000$
  • 子任务 3 [33 分]:$A_i \neq A_j$ ($1 \le i < j \le N$)
  • 子任务 4 [20 分]:无附加限制

样例

样例输入 1

5 7
5
1
4
3
2

样例输出 1

1
2
3
3
16

图 1

如果 $(a, b) = (1, 4)$,1 号星球传送器的目的地将被覆盖为 4 号星球。每个传送器的目的地将变为图 2 所示。如果我们从 1 号星球出发使用传送器 7 次,我们将到达 4 号星球。因此,下一次展览将在 4 号星球举行。(我们使用传送器的路径为 $1 \to 4 \to 3 \to 4 \to 3 \to 4 \to 3 \to 4$。)

图 2、图 3、图 4

共有三对 $(a, b)$(即 $(1, 4), (2, 4), (5, 3)$)使得下一次展览在 4 号星球举行。

在计算数对 $(a, b)$ 的数量时,应计算 $a = b$ 的数对 $(a, b)$。你还应该计算传送器目的地未发生改变的数对 $(a, b)$。

Editorials

IDTypeStatusTitlePosted ByLast UpdatedActions
EditorialOpen Official EditorialQingyu- Download

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.