学生重新排队【华为OD机试】(JAVA&Python&C++&JS题解)

149 篇文章 159 订阅 ¥9.90 ¥99.00
这篇博客介绍了如何解决一个关于学生重新排队的问题,以满足同组学生彼此相连的要求。文章提供了Java、Python、C++和JavaScript四种语言的解题思路和代码,并通过示例解释了计算最少调整次数的方法。最后,作者分享了对参加华为OD机试的鼓励寄语。
摘要由CSDN通过智能技术生成

一. 题目-学生重新排队

n个学生排成一排,学生编号分别是1到n,n为3的整倍数。老师随机抽签决定将所有学生分成m个3人的小组,n=3*m
为了便于同组学生交流,老师决定将小组成员安排到一起,也就是同组成员彼此相连,同组任意两个成员输入描述:之间无其它组的成员。
因此老师决定调整队伍,老师每次可以调整任何一名学生到队伍的任意位置,计为调整了一次,
请计算最少调整多少次可以达到目标。
注意:对于小组之间没有顺序要求,同组学生之间没有顺序要求。
两行字符串,空格分隔表示不同的学生编号
第一行是学生目前排队情况
第二行是随机抽签分组情况,从左开始每3个元素为一组
n 为学生的数量, n的范围为[3, 900], n一定为3的整倍数
第一行和第二行的元素个数一定相同
输出描述:

老师调整学生达到同组彼此相连的最小次数

补充说明:

同组相连: 同组任意两个成员之间无其它组的成员 ,比如有两个小组[4 5 6] [1 2 3],以下结果都满足要求

1 2 3 4 5 6

1 3 2 4 5 6

2 3 1 5 6 4

5 6 4 1 2 3

以下结果不满足要求

1 2 4 3 5 6,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值