• 第9章:贪婪技术——《算法笔记


    每一步选择满足条件

    可行

    局部最优

    不可取消

    局部最优产生全局最优

    证明:

    1.数学归纳法,

    2.每步不比其他步差

    3.到达问题最优上界

    或得到近似解

    特性问题:找一个数

    问题的特征提供更多信息?

    全局问题:多次查找

    问题的共同特性,特性的最大子集?

    拟阵:抽象组合结构

    最小生成树

    连通图

    权重最低

    是树!

    属性:点=边+1,无圈

    Prim算法:单个节点开始,选择离已有图最近的点加入

    保持集合:优先队列:未加入的点:离已有树的距离

    归纳法:每步构成的树是某棵最小生成树的子图

    i-1步符合属性,i步符合

    反证:两棵树,已知树,未知树,连接,选最小边

    Kruskal:

    V-1条边的无环子图

    边权重递减,选择最短边,判断是否构成环

    判断连通性:并查集:

    求并(合并树):两个节点在不同集合

    查找(是否连通):两个节点在同一集合(以后可不再考虑该边)

    遍历边,分两种情况:连接,成环

    并查集操作:

    makeset:生成单元素集合

    find:所属子集

    union:合并集合

    集合中元素来索引集合

    实现:

    链表:元素

    元素:所属集合标记

    并:短链表加入长链表末尾,修改元素集合标记(维护链表长度)

    证明nlogn

    根:子集代表

    节点:元素

    集合元素到树中节点的映射:指针数组

    并:合并根

    find:子——父——根指针链

    小树——附加到大树

    大小衡量:节点个数,高度

    路径压缩:节点直接指向根

    Dijkstra

    单起点最短路径

    不含负权重

    维护:已构成树,与剩余节点的距离

    选距离最近的点

    更新树与点集的距离

    斐波那契堆?理论上的改进

    哈弗曼树与编码

    变长编码

    字符出现频率

    单节点树:根:树的权重:频率和

    选两个最小频率,合并,新根:频率和

    压缩率

    动态哈夫曼编码

    n个正数分配给叶节点

    每步:最小加权长度all(hxw),合并

    最小加权树

    猜数字游戏,每次奖金减半

    习题:

    1.

  • 相关阅读:
    BZOJ 2152 聪聪可可
    hdu 1028 && hdu 1398 && hdu 1085 && hdu 1171 ——生成函数
    bzoj 4827 [Hnoi2017]礼物——FFT
    bzoj 4503 两个串——FFT
    bzoj 3527 [Zjoi2014]力——FFT
    bzoj 3160 万径人踪灭——FFT
    bzoj 2194 快速傅立叶之二
    bzoj 2179 FFT快速傅立叶
    洛谷 3803 【模板】多项式乘法(FFT)
    CF 622F The Sum of the k-th Powers——拉格朗日插值
  • 原文地址:https://www.cnblogs.com/qmcj/p/9132129.html
Copyright © 2020-2023  润新知