#P3260. The Fewest Coins

    ID: 2261 传统题 2000ms 256MiB 尝试: 2 已通过: 1 难度: 10 上传者: 标签>USACO 2006 December Gold动态规划多重背包完全背包状态转移组合优化

The Fewest Coins

题目翻译

农夫约翰去镇上购买一些农场用品。作为一个非常高效的人,他总是以使得经手硬币数量最少的方式支付商品,即他用来支付的硬币数量加上他收到的找零硬币数量要最小。请帮助他确定这个最小数量是多少。

约翰想买价值为 T(1 ≤ T ≤ 10,000)美分的用品。货币系统有 N(1 ≤ N ≤ 100)种不同的硬币,面值为 V₁, V₂, ..., Vₙ(1 ≤ Vᵢ ≤ 120)。农夫约翰携带了 C₁ 枚面值为 V₁ 的硬币,C₂ 枚面值为 V₂ 的硬币,……,Cₙ 枚面值为 Vₙ 的硬币(0 ≤ Cᵢ ≤ 10,000)。店主有所有硬币的无限供应,并且总是以最有效的方式找零(尽管约翰必须确保他的支付方式能够让店主给出正确的找零)。

输入格式

第 1 行:两个用空格分隔的整数 N 和 T。

第 2 行:N 个用空格分隔的整数,分别为 V₁, V₂, ..., Vₙ(硬币面值)。

第 3 行:N 个用空格分隔的整数,分别为 C₁, C₂, ..., Cₙ(约翰携带的各面值硬币数量)。

输出格式

第 1 行:一个整数,表示支付和找零过程中涉及的最少硬币数量。如果约翰无法支付并获得准确找零,输出 -1。

输入样例 1

3 70  
5 25 50  
5 2 1  

输出样例 1

3  

样例解释

农夫约翰用 1 枚 50 美分和 1 枚 25 美分硬币支付 75 美分,收到 1 枚 5 美分硬币作为找零,交易中总共使用了 3 枚硬币。

来源

USACO 2006 年 12 月金牌赛