1 条题解

  • 0
    @ 2025-10-24 17:13:32

    思路分析

    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
    上传者