蓝桥杯 牌型种数(枚举)


牌型种数

小明被劫持到X赌城,被迫与其他3人玩牌。
一副扑克牌(去掉大小王牌,共52张),均匀发给4个人,每个人13张。
这时,小明脑子里突然冒出一个问题:
如果不考虑花色,只考虑点数,也不考虑自己得到的牌的先后顺序,自己手里能拿到的初始牌型组合一共有多少种呢?

请填写该整数,不要填写任何多余的内容或说明文字。

 

思路: 13重循环枚举

 

 1 #include <iostream>  
 2 #include <string>  
 3 #include <set>
 4 #include <vector>  
 5 #include <algorithm>  
 6 
 7 using namespace std;
 8 
 9 int main()
10 {
11     int a[13];
12     int cnt = 0;
13     for (a[0] = 0; a[0] <= 4; a[0]++)
14         for (a[1] = 0; a[1] <= 4; a[1]++)
15             for (a[2] = 0; a[2] <= 4; a[2]++)
16                 for (a[3] = 0; a[3] <= 4; a[3]++)
17                     for (a[4] = 0; a[4] <= 4; a[4]++)
18                         for (a[5] = 0; a[5] <= 4; a[5]++)
19                             for (a[6] = 0; a[6] <= 4; a[6]++)
20                                 for (a[7] = 0; a[7] <= 4; a[7]++)
21                                     for (a[8] = 0; a[8] <= 4; a[8]++)
22                                         for (a[9] = 0; a[9] <= 4; a[9]++)
23                                             for (a[10] = 0; a[10] <= 4; a[10]++)
24                                                 for (a[11] = 0; a[11] <= 4; a[11]++)
25                                                     for (a[12] = 0; a[12] <= 4; a[12]++)
26                                                         if (a[0] + a[1] + a[2] + a[3] + a[4] + a[5] + a[6] + a[7] + a[8] + a[9] + a[10] + a[11] + a[12] == 13)
27                                                             cnt++;
28 
29     cout << cnt << endl;
30 
31     return 0;
32 }

 

 

 

答案: 3598180

转载于:https://www.cnblogs.com/FengZeng666/p/10462095.html

### 关于蓝桥杯 Python 模拟枚举的解题思路 在蓝桥杯竞赛中,枚举法是一种非常实用的方法,特别适用于数据规模较小或者问题复杂度较低的情况[^1]。以下是针对蓝桥杯 Python 中模拟枚举的具体示例代码和解题思路。 #### 示例代码:简单枚举求解最大值 假设我们需要在一个列表 `nums` 中找到最大的数并返回其索引位置: ```python def find_max_index(nums): max_value = nums[0] index = 0 for i, value in enumerate(nums): # 遍历整个数组 if value > max_value: # 判断当前值是否更大 max_value = value # 更新最大值 index = i # 记录下标 return index # 返回最大值对应的索引 # 测试用例 test_list = [3, 5, 7, 2, 8] result = find_max_index(test_list) print(f"最大值的位置是 {result}") ``` 这段代码展示了如何通过遍历列表中的每一个元素来解决问题,这是典枚举应用之一。 --- #### 示例代码:蓝桥杯经典枚举题目——跑步计划 对于蓝桥杯第17113题《跑步计划》[^3],可以通过枚举每一天可能的状态来进行计算。以下是一个简单的实现方式: ```python def running_plan(days, target_steps): count = 0 for day_1 in range(target_steps + 1): # 枚举第一天的步数 for day_2 in range(target_steps + 1): # 枚举第二天的步数 total_steps = day_1 + day_2 # 总步数等于两天之和 if total_steps >= target_steps: # 如果总步数达到目标,则计数加一 count += 1 return count # 输入样例 days = 2 target_steps = 4 result = running_plan(days, target_steps) print(result) ``` 上述代码利用双重循环实现了对每天步数可能性的穷尽列举,并统计满足条件的结果数量。这种方法虽然时间复杂度较高,但在输入范围较小时仍然有效。 --- #### 提高效率:结合其他算法思想 尽管枚举法可以直接解决问题,但对于更复杂的场景,建议将其与其他算法思想相结合,比如贪心、动态规划等。这样可以在一定程度上减少不必要的运算次数,从而提升程序运行速度。 例如,在某些情况下可以先对原始数据进行预处理(如排序),然后再执行枚举操作;又或者是引入剪枝技术提前终止无意义的分支探索过程等等。 --- #### 备考建议 参加蓝桥杯比赛不仅需要熟练掌握各种编程技巧,还需要具备良好的心理素质与应变能力[^2]。因此除了日常练习之外,还应该注重总结经验教训,定期回顾错题集,并尝试多种不同的解决方案以拓宽思维广度。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值