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 变身的更多相关文章
- (转)将win7电脑无线网变身WiFi热点,让手机、笔记本共享上网
将win7电脑变身WiFi热点,让手机.笔记本共享上网 功能:开启windows 7的隐藏功能:虚拟WiFi和SoftAP(即虚拟无线AP),就可以让电脑变成无线路由器,实现共享上网,节省网费和路由器 ...
- 第三届“HTML5峰会”变身“iWeb峰会”8月来袭
第三届“HTML5峰会”——2000人规模的“iWeb峰会”将于8月16日在北京召开.本次大会由HTML5梦工场主办,是在前两届“HTML5峰会”基础上的延伸和升华. 三年以来,HTML5梦工场致力于 ...
- 用CS-Script把Notepad++变身支持智能提示和运行代码的C#集成开发环境
博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:用CS-Script把Notepad++变身支持智能提示和运行代码的C#集成开发环境.
- 洛谷 P1110 [ZJOI2007]报表统计 解题报告
P1110 [ZJOI2007]报表统计 题目描述 \(Q\)的妈妈是一个出纳,经常需要做一些统计报表的工作.今天是妈妈的生日,小\(Q\)希望可以帮妈妈分担一些工作,作为她的生日礼物之一. 经过仔细 ...
- Es6构造函数的变身,通常我们称为类
以前我们使用ES5标准定义一个构造函数的过程如下: function Person(name,age){ this.name = name; this.age = age; //私有变量 var el ...
- 精通Web Analytics 2.0 (13) 第十一章:变身分析忍者的指导原则
精通Web Analytics 2.0 : 用户中心科学与在线统计艺术 第十一章:变身分析忍者的指导原则 这个激动人心的一章,分析了几乎所有工作的各个方面. 目标很简单:使用成熟的方法来帮助避免淹死的 ...
- 将win7电脑无线网变身WiFi热点,让手机、笔记本共享上网
1.以管理员身份运行命令提示符:快捷键win+R→输入cmd→回车 2.启用并设定虚拟WiFi网卡:运行命令:netsh wlan set hostednetwork mode=allow ssid= ...
- WIN7使用技巧 让电脑变身WiFi热点,让手机、笔记本共享上网,如何开启无线网络,共享无线网络
将win7电脑变身WIFI热点,让手机.笔记本共享上网 用win7建立无线局域网,可以共享上网可以局域网游戏. 开启windows 7的隐藏功能:虚拟WIFI和SoftAP(即虚拟无线AP),就可以让 ...
- 活动招募 HUAWEI HiAI公开课·北京站-如何在4小时把你的APP变身AI应用
人工智能和机器学习是全球关注的新趋势,也是当前最火爆.最流行的话题.当你拿手机用语音助手帮你点外卖,智能推荐帮你把周边美食一网打尽:当你拿起P20拍照时,它将自动识别场景进行最美优化,让你成为摄影大师 ...
随机推荐
- at: 安排一个任务在未来执行,需要一个atd的系统后台进程
检查atd进程是否启动 [root@centos61 桌面]# service atd status atd (pid 2274) 正在运行... [root@centos61 桌面]# chkco ...
- 如何合并两个git commit
把你的修改stage之后运行: git rebase -i HEAD~2 然后把第二行的pick改成squash就ok啦 note: 同理,如果要合并多个commit,把后面的2改成你想要合并的com ...
- iOS从零开始 Code Review
http://www.cocoachina.com/ios/20151117/14208.html 这篇帖子不是通篇介绍Code Review的方法论, 而是前大段记录了我们团队怎么从没有这个习惯到每 ...
- python 定义子类
- Nginx 外的另一选择,轻量级开源 Web 服务器 Tengine 发布新版本
新版发布 近日,轻量级开源 Web 服务器 Tengine 发布了2.3.0版本,新增如下特性: ngx_http_proxy_connect_module,该模块让 Tengine 可以用于正向代理 ...
- scala2.11读取文件
1.读取行 要读取文件的所有行,可以调用scala.io.Source对象的getLines方法: import scala.io.Source val source = Source.fromFil ...
- php 常用类汇总
转自:http://www.blhere.com/953.html 图表库 下面的类库可以让你很简单就能创建复杂的图表和图片.当然,它们需要GD库的支持. pChart - 一个可以创建统计图的库. ...
- JavaScript--for in循环访问属性用"."和[ ]的区别
// for in 循环遍历对象的时候// 内部要访问属性的时候不能点语法访问,因为for in 的key是字符串格式// 可通过方括号实现访问 for(var key in manObj) { co ...
- oracle中常用的时间格式转换
1:取得当前日期是本月的第几周 select to_char(sysdate,'YYYYMMDD W HH24:MI:SS') from dual; TO_CHAR(SYSDATE,'YY') se ...
- 机房收费系统——技术总结 标签: vb数据库技术 2014-09-07 22:29 1153人阅读 评论(30)
说完了经验,再谈谈技术方面,其实对于技术,师哥师姐们都已经写了好多博客,这也是我在敲机房几乎没写这方面的博客的原因,不过别人的再好也是别人的,下面说说自己的. (一)数据库的设计 其实虽然说是数据库的 ...