P2851 [USACO06DEC] The Fewest Coins G

P2851 [USACO06DEC] The Fewest Coins G

题目描述

农夫 John 想到镇上买些补给。为了高效地完成任务,他想使硬币的转手次数最少。即使他交付的硬 币数与找零得到的的硬币数最少。

John 想要买价值为 \(T(1 \le T \le 10,000)\) 的东西。有 \(N(1 \le N \le 100)\) 种货币参与流通,面值分别为 \(V_1,V_2,\dots,V_N(1 \le V_i \le 120)\)。John 有 \(C_i\) 个面值为 \(V_i\) 的硬币(\(0 \le C_i \le 10 ^ 4\))。

我们假设店主有无限多的硬币, 并总按最优方案找零。注意无解输出 -1

输入格式

第一行两个整数 \(N,T\)

第二行 \(N\) 个整数 \(V_1 \sim V_N\)

第三行 \(N\) 个整数 \(C_1 \sim C_N\)

输出格式

一个整数表示答案(无解输出 \(-1\))。

输入输出样例 #1

输入 #1

3 70
5 25 50
5 2 1

输出 #1

3

说明/提示

样例的最优方案:农夫 John 支付面值 \(50\)\(25\) 的硬币各一枚,店主找回面值为 \(5\) 的硬币一枚。

思路

硬币凑值的最优化问题直接无脑考虑背包。

然后这道题典型的支付多重背包,找钱完全背包,然后把背包容量开大一点就好了。

直接给我 AC

posted @ 2025-07-29 16:31  shencheng4014  阅读(12)  评论(0)    收藏  举报