U663703 疯狂的背包问题(5) - 完全背包问题(可行性问题)

题目背景

动态规划问题中的完全背包问题模板题,本题考察的是**可行性判断**。

题目描述

有 $N$ 种物品和一个容量是 $V$ 的背包。每种物品都有无限件可用。 第 $i$ 种物品的体积是 $v_i$。 现需要判断:是否存在一种选择物品的方案,使得**恰好装满**背包(即所选物品的总体积**等于** $V$)? **注意**:每种物品可以选择任意多件(只要总体积不超过背包容量)。

输入格式

第一行两个整数 $N$,$V$,用空格隔开,分别表示物品种数和背包容积。 接下来有 $N$ 行,每行一个整数 $v_i$,表示第 $i$ 种物品的体积。

输出格式

如果存在一种方案可以恰好装满背包,输出 `true`;否则输出 `false`。

说明/提示

### 样例解释 #1 可以选择物品:2 + 5 = 7,或者 2 + 2 + 3 = 7,因此存在方案。 ### 样例解释 #2 可能的组合:2+2=4,2+4=6,4+4=8,都无法恰好得到5,因此不存在方案。 ### 样例解释 #3 物品体积为3,无法组成10(10不是3的倍数),因此不存在方案。 **数据范围** * $0 < N, V \leq 10^3$ * $0 < v_i \leq 10^3$ **注意**: 1. 本题只要求判断可行性,不涉及物品价值 2. 每种物品有无限件可用 3. 物品的输入顺序不影响判断结果