码迷,mamicode.com
首页 > 其他好文 > 详细

校内OJ选做

时间:2019-12-17 01:05:05      阅读:134      评论:0      收藏:0      [点我收藏+]

标签:建立   最大   融合   离散   mil   数组   结构   网络   span   

·这里原本准备整理本校OJ上的经典题,但作者水平有限。

·萌新妹子刚学OI……只好把自己会的水题挂上来充数了。

·树套树

  ·二维线段树

    ·1792 征婚启事

      二维线段树,比较模板。以身高活泼值分别建立外层和内层线段树,维护缘分最大值。由于只有1位小数浮点强制转int,注意数据范围。

    ·2265 3D俄罗斯方块

      还是二维线段树,一共是三维,于是外层长度,内层宽度,维护高度Max。每次在区间上进行操作。最后统计一下总数。

  ·树状数组套线段树

    ·1817 二逼平衡树

      这题刚开始偷懒写的二维线段树被卡到80,于是换成树状数组套线段树。就是外层每次用树状数组求qsum(R)-qsum(L-1),用于查询rank。当然不要求强制在线可以一起读进来然后离散化。

    ·1813 网络管理

      静态树上的维护,很巧妙。每次把u,v,lca,falca抽出来。由于s[u],s[v]是+,s[lca],s[falca]是-,所以每次以从u,v开始每次-lowbit(i),把这些前缀扔进+容器。同理从lca,falca开始每次-lowbit(i),把这些前缀扔进-容器。接着在查询时由于查询第K大,cnt+=s[rs[t1[i]]],cnt-=s[rs[t2[i]]];如果cnt>=rk则向右子树移,否则rk-=cnt,向左子树移。

·线段树合并

    ·2508 C

      由于删除操作很麻烦,而且只有删除,合并,修改,没有添加,所以想到离线倒序。由于存在合并,所以要写线段树合并。计算每个连通块内第K大肯定使用并查集维护代表元,然后在代表元所属的线段树里面查询第K大。

    ·1484 谈笑风生

      这题网上的做法各种各样,离线可以树状数组求二维数点,长链剖分在dfs序上修改,在线可以主席树插入值,线段树合并,还有很多做法。用线段树合并

·可持久化数据结构

  ·可持久化线段树

    ·1814 区间K大数

    ·1815 树上计数

    ·1816 middle

  ·可持久化并查集

    ·OJ上暂时没有

  ·可持久化Trie树

    ·3562 异或粽子 

·LCT

  ·LCT基础操作

    ·1929 弹飞绵羊

    ·1931 洞穴勘测

  ·LCT动态加边最小生成树

    ·3487 水管局长

    ·3494 魔法森林

  ·LCT动态维护重心

    ·3486 首都

  ·LCT维护子树信息

    ·3489 大融合

·可并堆

  ·正常的可并堆

    ·1355 派遣

    ·1356 序列

    ·1457 城池攻占

    ·1860 罗马游戏

    ·1866 猴王

  ·魔改:可以执行可并堆操作的暴力

    ·1861 棘手的操作

·莫比乌斯反演

·FTT NTT MTT 

·kruskal重构树

校内OJ选做

标签:建立   最大   融合   离散   mil   数组   结构   网络   span   

原文地址:https://www.cnblogs.com/Kylin-xy/p/12052084.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!