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) 这个限制只是为了好写一点而已。

  • 相关阅读:
    JavaScript实现Map、Reduce和Filter
    Javascript常用对象的属性和方法
    自己封装的Ajax
    JavaScript函数调用规则
    JavaScript模板引擎使用
    java 简单贪吃蛇
    java邮件发送(含附件)
    java 读写Oracle Blob字段
    java 连接飞信API
    非常棒的Java REST服务器栈
  • 原文地址:https://www.cnblogs.com/May-2nd/p/15064911.html
Copyright © 2011-2022 走看看