zoukankan      html  css  js  c++  java
  • 暑期水题乱做

    P1168 中位数

    记录当前中位数,维护一个大根堆存储小于中位数的数,一个小根堆存储大于等于中位数的数。

    当需要输出中位数时,比较一下两个堆的大小,如果差值为 (2),则将当前中位数扔进数较少的那个堆里,数较多的那个堆的堆顶取出作为新的中位数。

    P1631 序列合并

    因为两数列一开始已经排好序了,所以当取了 (A_i+B_j) 这组后,(A_{i+p}+B_{j+q}(p>0,qgeq 0)) 不可能在 (A_{i+1}+B_j) 前面取,(A_{i+p}+B_{j+q}(pgeq 0,q>0)) 不可能在 (A_i+B_{j+1}) 前面取。

    一开始先将 (A_1+B_1) 这组丢进小根堆,每次取出堆顶的 (A_i+B_j) 后就将 (A_{i+1}+B_j)(A_i+B_{j+1}) 丢进堆。

    注意判重,可以用数组记录每个 (A) 现在最大取到哪个 (B) 了,如果不是最大就不丢。

    或者有一个更优美的方法,一开始将 (A_{1sim N}+b_1) 全部丢进去,每次取出后只要将 (B) 换成下一个丢回去即可。

    P1392 取数

    显然可以一行一行考虑,每次保留前面最小的 (k) 个。

    时间复杂度 (O(nmax{m,k}logmax{m,k})),显然 (kleq m) 这个限制只是为了好写一点而已。

  • 相关阅读:
    __name__在调用时的区别
    Python内置模块--os模块的使用
    查询mysql 表的元数据信息
    nfs服务搭建
    jvm参数设置
    spring boot 集成 beetl
    spring boot 集成 swagger2 四部曲
    JavaScript中的this关键字
    jQuery 基础事件
    jQuery 表单选择器
  • 原文地址:https://www.cnblogs.com/May-2nd/p/15064911.html
Copyright © 2011-2022 走看看