acgo题库
  • 首页
  • 题库
  • 学习
  • 竞赛
  • 讨论
  • 排行
  • 团队
  • 备赛专区

    竞赛

    • CSP-J/S
    • 蓝桥杯

    考级

    • GESP
    • CPA
    • 电子学会考级
登录
注册
题目详情提交记录(0)
  • A79547.contest 正经题解

    题目解析: 要求小Y最低多少名,即求最多有多少人的总分比小Y高,其中DAY1+DAY2的分数可以随意组合 思路: cnt储存总分比小Y高的最多人数,a和b数组储存DAY1和DAY2的分数。 输入后用sort将DAY1分数降序排列,DAY2分数升序排列,以此遍历还未组合过的的最大值和最小值 将DAY1的最高分,与DAY2的最低分遍历,i和j作为a b数组的遍历指针 若总分大于小Y的总分S,则将这一对分数视作下一名(若第一次大于S则为第一名),此时cnt++; 否则与DAY2第二小的分数比较,以此类推。 以上两行通过while实现,在满足第一种情况后即可寻找剩余DAY1分数的最大分数与DAY2分数, 因为a数组递减,b数组递增,所以不存在更小的DAY2分数与当前的DAY1分数可以超过s。 注意: 正整数总分最大值为4×10^9,所以可以用无符号整形unsigned int储存 别忘了最后输出时要将cnt加1,因为还要算上小Y自己,这样就AC了

    userId_undefined

    zjr

    18阅读
    0回复
    0点赞
暂无数据

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

首页