#HX3482. 多重背包题七:The Fewest Coins

提交2 通过1
通过率50%
时间限制1000ms
内存限制128MiB
    ID: 12772 传统题 1000ms 128MiB 尝试: 2 已通过: 1 难度: 普及 上传者: 标签>C++c++编程题浩轩OJ迁移6级动态规划之背包专题

题目描述

题目描述

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

小珅想要买价值为 T(1≤T≤10000)的东西。有 N(1≤n≤100)种货币参与流通,面值分别为 V1V_{1}V2V_{2},…,VnV_{n}(1≤ViV_{i}≤120)。小珅有 CiC_{i} 个面值为 ViV_{i} 的硬币(0≤CiC_{i}≤10000)。

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

输入格式

第 1 行,2 个整数 N,T。

第 2 行,n 个整数 V1V_{1}V2V_{2},…,VnV_{n}

第 3 行,n 个整数 C1C_{1}C2C_{2},…,CnC_{n}

输出格式

输出付钱和找零总共需要用到的最少的硬币数。无解输出 −1。

3 70
5 25 50
5 2 1
3
10 3949
37 40 42 44 51 59 68 72 90 92
862 552 858 751 109 291 111 87 394 369
44
1 6
3
2
2

数据范围与约定

1≤T≤10000,1≤n≤100,1≤ViV_{i}≤120,0≤CiC_{i}≤10000