前言:本道题目难度一般,当时博主的主要思路和复盘的时候差不多,但是比赛的时候漏了某些特殊情况,导致本题 “ 全盘崩溃 ”。复盘的是也是发现了这些问题,又因为是秋后算账,怎么来都无所谓,所以博主在本题的解法上加了些自己的 “ 私活 ”
(为了让题目更直观),接下来是本道题的解析。
一、题目分析
提取题目的关键信息: n 个传送阵,进门会从 i 门传送到 a[ i ] 门,走到某个循环门点 j 时可以使用魔法,传送到 j 门的前一扇或者后一扇,重复经过的门不计入次数,求最多可能进入不同传送门的次数。
首先从传送阵出发,n个数字随机排序,没有重复,并且按照题目要求是由检方输入生成的,那么我们就给 n 个传送阵创造好一个数组去存放这样一个排列顺序,循环n次,每次用scanf输入到数组a [ ]中,接下来这个数组 a[ ] 在本题里将作为“常量”处理,也就是a数组的内容不会发生任何改变,它要用来做对照组。
其次,从传送门的计次看,我们以小蓝进到某一扇门的时间为节点,对其经过的门数计次,也就是说当小蓝从i门出发时,i 门已经算入到总次数里,总次数 nums 开始自增。
<