zoukankan      html  css  js  c++  java
  • 【集训第一天内容】

    概要:对树链剖分进行收尾和小结,挺进AC自动机(要快,效率要高!)

    (一)树链剖分的几个总结:

    ①【LCA】(bzoj3626

        主要目的就是要优化这道题的时间(思路从暴力算法入手,然后使用数据结构--树链剖分+线段树去优化)。

    ·正确处理一个关键问题即可突破此题:区间[l,r]与z点之间的关系。【处理不同性质的问题,有一种入手方式是将其转化为同一性质的问题】可以想到一种集合关系:

    -------------ANS[L,R]=ANS[1,R]-ANS[1,L-1]-----------

    ·最后来跑一跑sort(),这也算是一种常用而高效的优化方式了:改变枚举顺序,以达到贪心目的或正确状态。

    1


    ②【2015NOIP运输计划】

    ·简化问题依旧是做数剖的主要思路,可以把这道题放在线性区间上考虑,那么可以【入点加,出点减大法】,在数剖上进行此操作,就记得在尾++,在头--(由于id反向)。当然,“最大的最小”告诉我们用二分。

    image


    ③【HAOI2015】(bzoj4034)

        DFS序,就是这样。树链剖分可以写,但是没有必要。在入和出的时候予以标记,权值分别为正负,程序格式是这样的,十分清晰:

    void dfs(int u)

    {

          dfs_array[++k]=u;in[u]=k;value_array[k]=value[u];

          … … … … …

          dfs_array[++k]=u;out[u]=k;value_array[k]=-value[u];

    }

    为了方便回忆,再来一个举例:

    image


    题目回忆到此为止。

    这是集训第一天,上午课堂很高效,但在下午AC自动机的一道涉及矩阵乘法的题让自己去寻找和理解预备知识“矩阵”就花了很长时间,效率不高(中午睡觉时间有点不够)。这是一个问题:我们对于这种超知识范围的题是否应该深钻?【或许太耗时间而且没有途径系统学习】

    这个问题留给张姐来解决。

    回首望去常规那边,只剩大米饼了…

    张姐还在调AC自动机,(她说:我很累)

    LENCE在………………

    袁YT在做二分题,

    王SY在…………………

    不要放弃,大不了再给你一个大米饼。

    Don’t give up,anyway we can still get a big-riced pancake!

    WSY:LCA这个题哪门做的?

  • 相关阅读:
    反转链表
    Kafka设计解析
    kafka丢失和重复消费数据
    阿里巴巴分布式数据库服务DRDS研发历程
    ZooKeeper系列文章
    阿里中间件RocketMQ
    Spring Cloud构建微服务架构
    TDDL调研笔记
    从OutStreamWriter 和Filewriter谈Java编码
    在Service里调用AlertDialog
  • 原文地址:https://www.cnblogs.com/Paul-Guderian/p/6628570.html
Copyright © 2011-2022 走看看