acgo题库
  • 首页
  • 题库
  • 学习
  • 天梯
  • 备赛

    竞赛

    • CSP-J/S
    • 蓝桥杯

    考级

    • GESP
    • CPA
    • 电子学会考级
  • 竞赛
  • 讨论
  • 团队
  • 商城
登录
注册
题目详情提交记录(0)
  • 官方题解

    题目大意 给定 nnn 个同学在数轴上的位置 xix_ixi ,每辆车最多载 222 人,且两人之间距离满足 ∣xi−xj∣≤D|x_i-x_j|\le D∣xi −xj ∣≤D 才能拼车。求最少需要多少辆车使所有同学都能回家。 题解思路 要让车辆数最少,就要让“拼车的对数”尽量多,因为每拼成一对就比两人各自打车少用一辆车。 把所有位置 xix_ixi 排序为 p1≤p2≤⋯≤pnp_1\le p_2\le \dots \le p_np1 ≤p2 ≤⋯≤pn 。在有序序列上从左到右扫描: * 如果 pi+1−pi≤Dp_{i+1}-p_i\le Dpi+1 −pi ≤D,就把这两位同学配成一对,然后跳过这两人; * 否则 pip_ipi 无法与任何更右侧的人拼车(更右只会更远),只能单独一辆车。 这是最大化不相交配对数的典型贪心:能配就立刻配相邻元素。设配对数为 pairs,答案为 cars=n−pairs.\text{cars}=n-\text{pairs}. cars=n−pairs. 复杂度:排序 O(nlog⁡n)O(n\log n)O(nlogn),扫描 O(n)O(n)O(n)。 参考代码

    userId_undefined
    NoonMaple
    7月全勤卷王出道萌新时空双修者题解仙人快乐小狗传道者
    19阅读
    0回复
    0点赞
暂无数据

提交答案之后,这里将显示提交结果~

首页