zoukankan      html  css  js  c++  java
  • 总结反思

    图论

    树剖: 速度较快, 能够维护动态信息

    倍增: 实现方便,速度较快,易维护静态信息

    (Tarjan)(LCA): 离线算法, 时间复杂度 (O(n + q))

    最小生成树的 (Boruvka) 算法, 因为最多需要用 (log V) 次即可联通, 拓展比较多, 时间复杂度优秀 (O(E log V))

    次小生成树: 每次替换一条在最小生成树中的最大边, 并使原图联通, 可用倍增维护

    严格次小生成树: 考虑维护最大边的同时维护严格次大边, 每次替换时, 若用来替换的边的权值和最大边权值相同则替换严格次大边

    (Kruskal) 重构树: 在(Kruskal)的过程中建立, 可用来查找最小瓶颈路

    斯坦纳树: 本质是 子集DP , 连通若干个关键点的最小边权和

    同余最短路: 类似于 P3403 跳楼机 的转换方式可用矩阵快速幂或最短路实现

    子集dp:

    (O(3 ^ n))

    for (int i = 1; i < (1 << n); i++) {
        for (int j = i; j; j = (j - 1) & i) {
            /*
                j为i的子集
            */
        }
    }
    

    (O(n imes 2 ^ n))

    for (int i = 0; i < n; i++) {
        for (int j = 0; j < (1 << n); j++) {
            if (j & (1 << i)) {
            /*
                j ^ (1 << i) 为 j 的子集
            */
            }
        }
    }
    

    (checkmark)

  • 相关阅读:
    老大叔开博感想
    模板
    Codeforces Round #685 (Div. 2) 题解
    CF830E Perpetual Motion Machine 题解
    THUWC2020游记
    数论
    后缀数组学习笔记
    Codeforces Round #466 (Div. 2)
    博客停写,搬家到www.54kaikai.com
    lda 主题模型--TOPIC MODEL--Gibbslda++结果分析
  • 原文地址:https://www.cnblogs.com/eqvpkbz/p/13832817.html
Copyright © 2011-2022 走看看