首页 > 其他 > 详细

P1110 变身

时间:2019-11-03 00:44:24      阅读:91      评论:0      收藏:0      [点我收藏+]

题目描述

给你一个长度为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<=2
    10^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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!