问题2525--Is Greed Correct

2525: Is Greed Correct

[命题人 : ]
时间限制 : 2.000 sec  内存限制 : 64 MB

题目描述

换零钱问题的典型问法为: 给定一系列的硬币面值和一个需要找的钱数,要求把这个钱数换成硬币且使用的个数最少。 对于这个问题,贪心法可以找到一个不错的解,但不一定是最优解。贪心法是这样的:假设要找的钱数是A,每次找出不大于A的最大的面值的硬币,从A里面减去,至到A=0.我们假设我们所考虑的硬币系统里面总有一个面值为1,那么问题一定有解。 我们的问题是给定一个硬币系统,判断用贪心法来换零钱是否总能得到最优解,即判断是否对任意的A,贪心法得到的硬币组合方案是否总是最少的。

输入

输入的第一行是一个整数T,表示测试数据的组数。下面有T组测试数据。 每组测试数据有两行: 第一行是一个整数M(2 < M <= 100);第二行是M个用空格隔开的整数,表示这个硬币系统中有哪些币值。每个数都不大于10^7,M个整数互不相同,且一定有一个是1.

输出

对于每组测试数据如果贪心法对于这个硬币系统总是最优的,输出"Yes",否则输出"No"(引号不用输出)。

样例输入 Copy

2
6
1 5 10 25 50 100
3
1 3 4

样例输出 Copy

Yes
No

提示

第一组数据是贪心最优的,因为我们生活中使用的是硬币系统是贪心最优的。第二组不是,这是一个反例:如果需要组成6,使用贪心算法的组合为6=4+1+1,需要3个硬币,而最优的组合为6=3+3,仅需两个硬币。