解题思路
ai解题只能辅助然后给一个思路,细节上很容易把握不到位 核心思路就是枚举,这里有个小技巧,就是判断牌的优先级大小,我们可以用一个字典来界定优先级,
dic = { 0: 0, 1: 13, 13: 12, 12: 11, 11: 10, 10: 9, 9: 8, 8: 7, 7: 6, 6: 5, 5: 4, 4: 3, 3: 2, 2: 1 }
-
统计牌的出现次数
-
使用一个字典统计每种牌的出现次数。
-
例如,给定牌组
[A, A, A, K, K, Q, Q, Q],统计结果为:counts = {1: 3, 13: 2, 12: 3}
-
-
枚举所有可能的“葫芦”组合
- 从统计结果中找出符合条件的牌
a(至少出现 3 次)。 - 找出符合条件的牌
b(至少出现 2 次),且a和b必须不同。
- 从统计结果中找出符合条件的牌
-
验证总和值限制
- 检查
3 * a + 2 * b <= max是否成立。
- 检查
-
比较选择最大值
- 优先选择
a最大的组合。 - 若
a相同,选择b最大的组合。
- 优先选择
-
输出结果
- 如果找到符合条件的“葫芦”,输出
a和b。 - 如果找不到符合条件的组合,输出
0, 0。
- 如果找到符合条件的“葫芦”,输出