Greedy Problem¶
Activity Selection Problem¶
有一些活动,每个活动有一个开始时间
按照
Dynamic Programming¶
设
其中
Greedy Algorithm¶
从前往后扫描,每次选择不冲突的最早结束的活动。
加权活动选择问题
每个活动有权重,要求最大化权重。
使用动态规划求解。
区间调度问题
所有活动必须举办,求最少需要多少资源。
先按照开始时间排序,初始资源数量为 1,每次如果所有活动都冲突,则资源数量加 1,否则加入到不冲突的活动中。
Huffman Coding¶
给定一组字符
每次选择频率最小的两个字符构造一个新字符,频率为两者之和,直到只剩一个字符。
Proof
Lemma
若
将
Lemma
将
设
假设存在
与
综上两个 Lemma 得到 Huffman 编码的正确性。