求助,800个TLE!
查看原帖
求助,800个TLE!
825994
yqcg楼主2024/8/18 10:15

此为本题Atcoder better!翻译:

问题陈述

给你一个长度为 NN 的序列 XX ,其中每个元素的长度都在 11 和 NN 之间(含11和NN),以及一个长度为 NN 的序列 AA 。

打印在 AA 上执行以下操作 KK 次的结果。

将 AA 替换为 BB ,使得 Bi=AXiB_i = A_{X_i} 。

限制因素

  • 所有输入值均为整数。
  • 1≤N≤2×1051 \le N \le 2 \times 10^5
  • 0≤K≤10180 \le K \le 10^{18}
  • 1≤Xi≤N1 \le X_i \le N
  • 1≤Ai≤2×1051 \le A_i \le 2 \times 10^5

输入

输入内容由标准输入法提供,格式如下:

NN KK

X1X_1 X2X_2 …\dots XNX_N

A1A_1 A2A_2 …\dots ANA_N

输出

让 A′A′成为操作后的序列 AA 。按以下格式打印:

A1′A'_1 A2′A'_2 …\dots AN′A'_N

输入样例 1

7 2 3 5 1 9 3

输出样例 2

7 2 3 5 1 9 3

在此输入中, X=(5,2,6,3,1,4,6)X=(5,2,6,3,1,4,6) 和初始序列是 A=(1,2,3,5,7,9,11)A=(1,2,3,5,7,9,11) 。

  • 经过一次运算后,序列为(7,2,9,3,1,5,9)(7,2,9,3,1,5,9)。
  • 经过两次运算后,序列为 (1,2,5,9,7,3,5)(1,2,5,9,7,3,5) 。
  • 经过三次运算后,序列为 (7,2,3,5,1,9,3)(7,2,3,5,1,9,3)

输入样例 2

4 0
3 4 1 2
4 3 2 1

输出样例 2

4 3 2 1

可能会出现不执行任何操作的情况。

输入样例 3

9 1000000000000000000
3 7 8 5 9 3 7 4 2
9 9 8 2 4 4 3 5 3

输出样例 3

3 3 3 3 3 3 3 3 3

这是我的代码,求如何优化时间复杂度,因为~~~~800个TLE!

2024/8/18 10:15
加载中...