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

    竞赛

    • CSP-J/S
    • 蓝桥杯

    考级

    • GESP
    • CPA
    • 电子学会考级
登录
注册
题目详情题解(0)讨论(0)提交记录(0)
  • 官方题解|照片装裱

    题目解析 我们可以把所有的照片和相框的宽度和长度放在一块,并按照宽度从大到小排序,如果一个照片和一个相框的宽度相同,则将相框放在前面。 接下来准备一个容器 SSS,并遍历排序后的照片和相框: * 若当前为相框 (Ci,Di)(C_i, D_i)(Ci ,Di ),则将 DiD_iDi 放入 SSS 中。 * 若当前为照片 (Ai,Bi)(A_i, B_i)(Ai ,Bi ),则从 SSS 中找最小的大于等于 BiB_iBi 的元素,并将其从 SSS 中删除。如果无法找到这样的元素,说明这个照片无法找到一个相框来装裱,答案为 No\tt{No}No。 如果成功遍历完所有的元素,答案为 Yes\tt{Yes}Yes。 如果使用一个普通数组充当容器 SSS,那么以上算法的时间复杂度为 O(NM)O(NM)O(NM),但是我们可以使用 std::multiset 作为 SSS 来解决这个问题,时间复杂度为: O((N+M)log⁡(N+M))O((N + M)\log{(N + M)})O((N+M)log(N+M))。 AC代码 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    userId_undefined

    AC君

    管理员
    倔强青铜
    21阅读
    0回复
    0点赞
首页