1 条题解
-
0
思路分析
1. 任务拆解:
- 找到满足以下条件的人数组合:
- 男人 + 女人 + 小孩 = 30人
- 3×男人 + 2×女人 + 1×小孩 = 50先令
- 允许某些类型的人数为0
2. 关键点分析:
- 男人最多:50÷3 = 16人(向下取整)
- 女人最多:50÷2 = 25人
- 小孩最多:30人
- 使用三重循环枚举所有可能组合
- 检查人数总和与金额总和条件
3. 步骤规划:
- 外层循环枚举男人数量i(从0到16)
- 中层循环枚举女人数量j(从0到25)
- 内层循环枚举小孩数量k(从0到30)
- 检查i + j + k = 30
- 检查3i + 2j + k = 50
- 输出满足条件的方案
4. 代码对应:
for(int i=0;i<=50/3;i++)→ 枚举男人数量(最多16人)for(int j=0;j<=50/2;j++)→ 枚举女人数量(最多25人)for(int k=0;k<=30;k++)→ 枚举小孩数量(最多30人)if(i+j+k==30&&i*3+j*2+k*1==50)→ 检查人数和金额条件cout<<i<<" "<<j<<" "<<k<<endl→ 输出方案
- 找到满足以下条件的人数组合:
- 1
信息
- ID
- 254
- 时间
- 1000ms
- 内存
- 16MiB
- 难度
- 4
- 标签
- (无)
- 递交数
- 603
- 已通过
- 269
- 上传者