P1110 变身
作者:互联网
题目描述
给你一个长度为n的数组a,他们的坐标从1到n,并且他们的数值也在1到n之间且两两不同。
数组中的每个元素每轮回合都会变身,变身的结果取决于该元素当前的值,如果在某一个回合该元素的值为u,则下一个回合他会变为a[u]。
比如,给你一个 n=5 的数组 a = [5,1,2,4,3]。
然后我们来看第1个人每一天的状态:
- 第一天a[1]=5
- 第二天a[1]变成了3
- 第三天a[1]变成了2
第四天a[1]变成了1
所以我们会发现a[1]至少经过4天能变回他自己。
现在你需要做的是:确定数组中每个元素至少需要几天能变回他自己。输入格式
输入的第一行包含一个整数q(1<=q<=1000),表示询问的数据组数。
接下来 2q 行,对应q组数据。
第i组数据的第一行为一个整数n(1<=n<=210^5)。
第i组数组的第二行为n个整数,两两之间以一个空格分隔,分别用来表示a[1]到a[n]。输出格式
对于n组数据,每组数据输出一行,包含n个整数,两两之间以一个空格分隔,用于表示第i个元素至少需要变化几次能变回它自己。
样例输入
6
5
1 2 3 4 5
3
2 3 1
6
4 6 2 1 5 3
1
1
4
3 4 1 2
5
5 1 2 4 3
样例输出
1 1 1 1 1
3 3 3
2 3 3 2 1 3
1
2 2 2 2
4 4 4 1 4
标签:P1110,一个,元素,样例,能变,整数,数组 来源: https://www.cnblogs.com/problems/p/11784629.html