题目描述
n (3≤n≤90000 且可以整除 3 )个学生排成一排,学生编号分别是 1 到 n,n 为 3 的整倍数,老师随机抽签决定将所有学生分成 m 个 3 人的小组(n == 3 * m) 。
为了便于同组学生交流,老师决定将小组成员安排到一起,也就是同组成员彼此相连,同组任意两个成员之间无其它组的成员。
因此老师决定调整队伍,老师每次可以调整任何一名学生到队伍的任意位置,计为调整了一次, 请计算最少调整多少次可以达到目标。
注意:对于小组之间没有顺序要求,同组学生之间没有顺序要求。
输入描述
第一行输入初始排队顺序序列
第二行输入分组排队顺序序列
输出描述
输出一个整数x,表示至少调整x次站位
用例
输入
4 2 8 5 3 6 1 9 7
6 3 1 2 4 8 7 9 5
输出
1
说明
分组分别为:6,3,1一组,2,4,8一组,7,9,5一组
初始排队顺序中,只要将5移动到1后面,变为:
4 2 8 3 6 1 5 9 7
即可满足分组排队顺序要求。
因此至少需要调整1次站位。<

这篇博客介绍了如何解决华为OD机试中关于学生分组的题目,涉及C++、Java、JavaScript、Python和C语言的解题思路及代码实现。通过分析输入序列和分组序列,计算最少的站位调整次数以满足分组要求。
订阅专栏 解锁全文
1万+

被折叠的 条评论
为什么被折叠?



