此为本题Atcoder better!翻译:
问题陈述
给你一个长度为 N 的序列 X ,其中每个元素的长度都在 1 和 N 之间(含1和N),以及一个长度为 N 的序列 A 。
打印在 A 上执行以下操作 K 次的结果。
将 A 替换为 B ,使得 Bi=AXi 。
限制因素
- 所有输入值均为整数。
- 1≤N≤2×105
- 0≤K≤1018
- 1≤Xi≤N
- 1≤Ai≤2×105
输入
输入内容由标准输入法提供,格式如下:
N K
X1 X2 … XN
A1 A2 … AN
输出
让 A′成为操作后的序列 A 。按以下格式打印:
A1′ A2′ … AN′
输入样例 1
7 2 3 5 1 9 3
输出样例 2
7 2 3 5 1 9 3
在此输入中, X=(5,2,6,3,1,4,6) 和初始序列是 A=(1,2,3,5,7,9,11) 。
- 经过一次运算后,序列为(7,2,9,3,1,5,9)。
- 经过两次运算后,序列为
(1,2,5,9,7,3,5) 。
- 经过三次运算后,序列为
(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!