珂朵莉树:修订间差异

    来自中国珂学院
    标签:移动版编辑 移动版网页编辑
     
     
    (未显示另一用户的1个中间版本)
    第1行: 第1行:
    '''珂朵莉树''',又称Old Driver Tree(ODT)<s>(老司机树),</s>是一种基于std::set的'''暴力'''数据结构。
    '''珂朵莉树''',又称Old Driver Tree(ODT)<s>(老司机树),</s>是一种基于std::set的'''暴力'''数据结构。


    === 适用范围 ===
    由数据结构大师lxl发明
     
    ===适用范围===
    在'''{{color|red|数据随机}}'''的情况下,要求对一段区间内的数据进行统一赋值(推平)操作。
    在'''{{color|red|数据随机}}'''的情况下,要求对一段区间内的数据进行统一赋值(推平)操作。


    '''时空复杂度'''
    ==='''时空复杂度'''===
    珂朵莉树的复杂度是由assign_val保证的。
     
    由于数据随机,有1/4的操作为assign,并且大部分点会被缩成整块的区间,需要操作的次数很少。
     
    set的大小快速下降,最终趋于loglogn ,使得这种看似暴力无比的数据结构复杂度接近O(mloglogn)


    珂朵莉树的复杂度是由assign_val保证的。
    ==引用==
    洛谷题解 https://www.luogu.com.cn/problem/solution/CF896C
     
    讲解 https://www.bilibili.com/video/av21651173
     
    <big>'''练习'''</big>
     
    https://www.luogu.com.cn/problem/CF896C
     
    https://www.luogu.com.cn/problem/CF915E<nowiki/>(复杂度为最高nlogn,即非暴力)
     
    https://www.luogu.com.cn/problem/P5444
     
    https://www.luogu.com.cn/problem/CF1567E<nowiki/>(复杂度为最高nlogn,即非暴力)


    由于数据随机,有1/4的操作为assign。
    https://darkbzoj.tk/problem/1858<nowiki/>(洛谷上此题数据加强,珂朵莉树无法通过)


    set的大小快速下降,最终趋于logn ,使得这种看似暴力无比的数据结构复杂度接近mlogn 。
    == 总结 ==
    <br />
    珂朵莉树,大部分时候可以作为一种骗分手段,有时也可以作为正解出现。

    2021年11月28日 (日) 16:52的最新版本

    珂朵莉树,又称Old Driver Tree(ODT)(老司机树),是一种基于std::set的暴力数据结构。

    由数据结构大师lxl发明

    适用范围

    在数据随机的情况下,要求对一段区间内的数据进行统一赋值(推平)操作。

    时空复杂度

    珂朵莉树的复杂度是由assign_val保证的。

    由于数据随机,有1/4的操作为assign,并且大部分点会被缩成整块的区间,需要操作的次数很少。

    set的大小快速下降,最终趋于loglogn ,使得这种看似暴力无比的数据结构复杂度接近O(mloglogn)

    引用

    洛谷题解 https://www.luogu.com.cn/problem/solution/CF896C

    讲解 https://www.bilibili.com/video/av21651173

    练习

    https://www.luogu.com.cn/problem/CF896C

    https://www.luogu.com.cn/problem/CF915E(复杂度为最高nlogn,即非暴力)

    https://www.luogu.com.cn/problem/P5444

    https://www.luogu.com.cn/problem/CF1567E(复杂度为最高nlogn,即非暴力)

    https://darkbzoj.tk/problem/1858(洛谷上此题数据加强,珂朵莉树无法通过)

    总结

    珂朵莉树,大部分时候可以作为一种骗分手段,有时也可以作为正解出现。