zoukankan      html  css  js  c++  java
  • 「洛谷 P1801」黑匣子

    好像很久没有更过博客了,因为博主这几周很忙。其实是在搞颓。
    题意很难懂,所以就不重复了。其实是懒。
    一眼看上去这是个 (Splay) 裸题,直接插入一个数,查询区间第 (K) 大,但是这样太不优美了,配不上「NOI导刊」这几个字,所以这题肯定有更优美的做法。
    注意到这道题有一个很优美的性质,(K) 是递增的,然后我们就可以搞事情了。
    开两个堆,一个大根堆,一个小根堆。大根堆里存的是前 (K) 小的数。
    每次插入一个数,判断是否比大根堆的堆顶要小,是就把堆顶丢回小根堆,当前数如入大根堆,否则直接丢小根堆。单次插入是 (O(log_{2}n)) 的,总复杂度 (O(nlog_2n))
    这道题我开始是手写的 (heap),没有压常数,(112ms)
    然后我大力加一波 (register)(188ms)
    不要全部加,删掉几个(116 sim 144ms)不等。
    怒改 (STL + register)(116ms)
    我想我该好好学习一下卡常技巧,不能越卡越慢……
    代码常数太丑,就不贴了。

  • 相关阅读:
    python入门:字符编码
    python入门:字符串2
    使用keepalived实现高可用
    基于sersync实现实时同步
    kubeadm 的工作原理
    docker-stop不能停止容器
    kubernetes 中的证书工作机制
    docker-hub中python的tag都代表什么意思
    MFS 介绍
    安装sngrep线路抓包工具
  • 原文地址:https://www.cnblogs.com/y142857/p/7806793.html
Copyright © 2011-2022 走看看