本题要求在给定 n 颗元素宝石(1≤n≤6,每颗宝石的数字在 1∼13)的情况下,判断是否存在某种宝石的排列顺序,以及严格从左到右的 n−1 次魔法融合(加法、减法、乘法、向零取整的除法),使得最终的合成结果恰好为 24。
由于 n 很小,可以直接暴力枚举所有可能性。算法的核心分为两层:
在一个隐秘的魔法工坊中,小巫师获得了一组 n 颗元素宝石,每颗宝石上刻有一个正整数。他需要将这些宝石排成一列,然后从左到右依次进行融合操作。每次融合时,他可以从加法、减法、乘法、除法四种魔法中选择一种,作用在当前合成值与下一颗宝石之间。所有操作的优先级相同,必须严格按照从左到右的顺序执行。最终必须恰好使用所有宝石,即进行恰好 n−1 次融合。
除法采用向零取整的整数除法,即除得的结果舍弃小数部分(例如 7 除以 3 结果为 2,-7 除以 3 结果为 -2)。融合过程中允许出现零和负数。
你的任务是判断:是否存在某种宝石的排列顺序以及每一步的魔法选择,使得最终的合成结果恰好等于 24 这个魔力常数。
约束条件:
6(1≤n≤6)。1 到 13(1≤ai≤13)。10。输入首先包含一个整数 T(1≤T≤10),表示测试数据组数。对于每组数据,第一行包含一个整数 n,表示宝石的数量;第二行包含 n 个整数,表示宝石上刻的数字,以空格分隔。
对于每组数据,输出一行。如果存在某种方式能合成 24,输出 Yes;否则输出 No。
输入
1
1
24
输出
Yes
说明
只有一颗宝石,值为 24,无需进行任何融合操作,直接得到结果 24,因此输出 Yes。
输入
1
4
1 2 3 4
输出
Yes
说明
可以按排列 [1,2,3,4] 进行融合,从左到右全部选择乘法运算。
计算过程:
1×2=2,
2×3=6,
6×4=24。
最终结果恰好为 24,因此输出 Yes。
输入
1
2
7 3
输出
No
说明
对数字 7 和 3 枚举所有排列与运算方式。
排列 [7,3] 的运算结果有:7+3=10,7−3=4,7×3=21,7/3=2(向零取整)。 排列 [3,7] 的运算结果有:3+7=10,3−7=−4,3×7=21,3/7=0。
所有结果均不为 24,故输出 No。
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册