题目解析
特殊说明
- 这篇博客是对于 论文 + 题解 的详细解释。
- 贪心做法是每次取能取货币中价值最大的货币。
- 每个引理下面都是证明。
定义 2 2 2 个系统(定义:一个序列的表示方法) C , V C, V C,V。
C = ( c 1 , c 2 , . . . , c n ) C = (c_1, c_2, ... \ , c_n) C=(c1,c2,... ,cn)(这是题目给出的货币系统, c i = a i c_i = a_i ci=ai,即 c i > c i + 1 c_i > c_{i+1} ci>ci+1)。
V = ( v 1 , v 2 , . . . , v n ) V = (v_1, v_2, ... \ , v_n) V=(v1,v2,... ,vn)(这是对于某一个价值 W W W 的一种构造方案,其中 v i v_i vi 表示使用价值为 c i c_i ci 的货币的数量)。
定义 V = c 1 × v 1 + c 2 × v 2 , . . . , c n ∗ v n = C ∗ V V = c_1 \times v_1 + c_2 \times v_2, ... \ , c_n * v_n = C * V V=c1×v1+c2×v2,... ,cn∗vn=C∗V。
设 G ( W ) G(W) G(W) 表示对于价值 W W W 的 字典序最大 的 贪心 构造方案中(在计算中表示需要的货币数,下标表示第 i i i 个货币使用的数量,有时简写成 G G G)。
设 M ( W ) M(W) M(W) 表示对于价值 W W W 的 字典序最大 的 最优 构造方案中(在计算中表示需要的货币数,下标表示第 i i i 个货币使用的数量,有时简写成 M M M)。
引理 0
- G ( W ) G(W) G(W) 的字典序一定 大于等于 M ( W ) M(W) M(W)。
- W W W 越小, G ( W ) G(W) G(W) 的字典序也越小。
因为贪心每次都是取最大的货币,越大的货币越靠前,贪心取的货币一定是达到了上限的,最优方案是不可能超过它的,第二个同理。
引理 1
- 设 W W W 的贪心构造方案为 V W = ( v 1 , v 2 , . . . , v n ) V_W = (v_1, v_2, ... \ , v_n) VW=(v1,v2,... ,vn),并记其中取的一个货币为 c i c_i ci。
- 一定有结论:贪心构造方案 V W − c i = ( v 1 , v 2 , . . . , v i − 1 , . . . , v n ) V_{W - c_i} = (v_1, v_2, ... \ , v_i - 1, ... \ , v_n) VW−ci=(v1,v2,... ,vi−1,... ,vn)(少取了 1 1 1 次 c i c_i ci), G ( W ) = G ( W − c i ) + 1 G(W) = G(W - c_i) + 1 G(W)=G(W−c