题解在最后,接下来是说明
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1:理解问题
根据"题目描述"可以化简为:
满足条件的数值有几
条件:
* 1:数值大于 0 (即数值为正)
* 2:从大到小前 k 位的数值
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
2:转化条件为目标
据1.1得- 判断数值是否大于0
据1.2得-
(1)从大到小排序 但是根据题目得已经按分数从大到小排序
所以不用考虑
(2)判断是否是前 k 位的数值
注意:因为数值难免有相同,因题目中说明"不存在相同分数的人",所以才不考虑位置重合
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
3:规划思路
> 不用数组 即 获取到数值 需 直接处理
为了保证正确
* 处理数值 根据 条件
*设 a 为数据, m 为通过数值
所以根据
据2.1得:
据2.2得:
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
4:细节处理
根据"数据范围"
得:
a,k 数据类型为long long
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
汇总: (k 为 b)