【100%通过率】2023华为OD机试真题B卷 Python 实现【排队游戏】

本文介绍了2023年华为在线开发者(OD)机试的一道真题——【排队游戏】,涉及到如何处理刺头学生和非刺头学生的排列问题。通过分析,确定了使用二分法寻找合适位置的策略。示例展示了不同情况下的不满程度判断,最终决定教师是否能继续教学。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

题目

思路

Code


题目

新来的老师给班里的同学排一个队。每个学生有一个影力值。一些学生是刺头,不会听老师的话,自己选位置,非刺头同学在剩下的位置按照能力值从小到大排。对于非刺头同学,如果发现他前面有能力值比自己高的同学,他不满程度就增加,增加的数量等于前面能力值比他大的同学的个数刺头不会产生不满如果整个班级累计的不满程度超过k,那么老师就没有办法教这个班级了.
输入描述
输入有三行:
第一行为n,m,k,空格隔开,分别表示班级总人数,刺头人数,最大不满程度k.

第二行为刺头所在位置(从0开始,即排队数组的下标,比如1代表队伍中第2个同学是刺头),位置的数组也是排序的.

第三行有n个数,空格隔开,表示老师排好的队中每人人的能力值,其中非刺头同学一定按照能力值从小到大排好序的

输出描述
0 表示老师可以继续教这个班级
1 表示老师无法继续教这个班级
说明
n 范围是[1,10000]
m 范围是[1,n]
k 范围是[1,1000000000]
每位同学的能力值范围是[1000,100000]

示例1:

输入

4 2 3
0 1

1810 1809 1801 1802
输出

1
说明
刺头在0.1位置,2号同学不满程度2(前面两人刺头能力值都比他大),3号同学不满程度2

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MISAYAONE

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值