站外题求助(玄关)
  • 板块灌水区
  • 楼主banglee
  • 当前回复0
  • 已保存回复0
  • 发布时间2025/1/23 14:00
  • 上次更新2025/1/23 15:12:38
查看原帖
站外题求助(玄关)
681292
banglee楼主2025/1/23 14:00

奶牛排队

描述

农夫 fj 有 N(1N100)N (1 \le N \le 100) 条编号为 1N1 \dots N 的奶牛按照数组 AiA_i 站成一排,但是为了拍照需要要把这些奶牛按照所谓的循环圆进行调整为数组 BiB_i 排队。 例如,奶牛们初始是按照 A=5,1,4,2,3A = 5,1,4,2,3 排队,为了拍照最后要调整为 B=2,5,3,1,4B = 2,5,3,1,4,调整的方法是,具体循环圆如下:在初始 AA 数组奶牛 55 是排在第一位的,在 BB 数组是排在第 22,那么奶牛 5 就调到 AA 数组的第 2 个位置取代奶牛1,奶牛1在 BB 数组时排在第4个位置,那么奶牛1就调到 A 数组第4个位置取代奶牛2,奶牛2在 B 数组排在第1个位置,那么奶牛2就调到A数组第1个位置,因为第1个位置是奶牛5的起始位置,那么这个循环圆调整结束,这个循环圆由 5、1、2 组成而且他们都最终到达了最终位置。

剩下由奶牛4开始,因为奶牛4在 B 数组排在第5个位置,那么奶牛4在 A 数组调到第5个取代奶牛3,奶牛3在B数组排在第3个位置,那么奶牛3在A数组调到第3个位置,这个位置刚好是奶牛4的起始位置,这样奶牛4、3也是一个循环圆。

通过这两个循环圆,奶牛从初始的 AA 数组调整到最终的 BB 数组位置。

输入

第一行:一个整数 NN

2N+12 \dots N+1行:行 i+1 代表 AiA_i

2+N1+2N2+N \dots 1+2N 行:代表 BiB_i

输出

两个整数分开的整数,第一个代表有多少个循环圆,第二个代表最长循环圆的长度。如果一个循环圆都不需要做,第二个数输出 -1

输入/输出例子1

输入:5 5 1 4 2 3 2 5 3 1 4

输出:2 3

样例解释

有两个循环圆分别是:5、1、2 和 3、4。


麻烦各位大佬帮一下忙,已经调了很久还是调不出来,感激不尽,谢谢!

2025/1/23 14:00
加载中...