zoukankan      html  css  js  c++  java
  • 可持久数据结构

    森林

      看到链上k大,还强制在线,不难想到主席树,发现这道题只有加边操作,而且数据范围特别小,可以考虑启发式合并,每次加边,暴力$dfs$一遍较小的子树即可。

      $O(n*log^{2}n)$

    影魔

      由于很久之前看过这个题,一直以为不是很可做,然而发现一众大佬全都切掉了,于是好好想了想,发现不是很难。

      (以下只考虑$i<j$&&$k_{i}<k_{j}$的情况)维护一个单调递减的单调栈,然后第一种贡献就是当前点弹掉的所有节点,暴力在线段树上插入即可。

      第二种贡献,设单调栈中与$i$相邻的节点为$j$,在那么从j+1到i的所有节点都可以与i造成第二种贡献(除了i弹掉的),在线段树上区间修改即可。

      如果$k_{i}>k{j}$,只需要从右到左再跑一遍即可。

      $O(n*logn)$

    世博会

      长时间思考无果后去看了个标签:切比雪夫距离转曼哈顿距离?然后就去学习了一下,然后就会了。

      首先将题里的那个东西转成曼哈顿距离,然后可以发现$x$和$y$的贡献是分离的,且最优的必然是中位数,维护一下就好了。

    树上询问

      树上链的询问树剖就行,区间加等差数列打标记就行,查询历史版本持久化就行,标记永久化,码就完了。

    ALO

      考虑求出每个值可以异或的一段区间,那么只要在$trie$树上查就可以了。求出这个区间可以利用$ST$表+二分,二分出左右比当前数大的第一个值,再二分第二个值即可。

    最大异或和

      可持久$trie$模板题,异或后缀和=异或前缀和^整个序列,将前缀和插入$trie$树,查一下即可。

  • 相关阅读:
    gitlab搭建
    java数组
    安裝nextcloud
    Spring的定时任务@Scheduled(cron = "0 0 1 * * *")
    java内存结构(下)
    java内存结构(上)
    多线程的三个特性
    @RequestBody用法
    SwaggerAPI注解详解(转载)
    在jpanel中添加jbutton并自由设置按钮大小和位置
  • 原文地址:https://www.cnblogs.com/hzoi-cbx/p/12051555.html
Copyright © 2011-2022 走看看