1 条题解

  • 0
    @ 2025-10-23 18:38:56

    思路分析

    1. 任务拆解:

    • 找到满足以下条件的马匹组合:
      • 大马 + 中马 + 小马 = 100匹
      • 3×大马 + 2×中马 + 0.5×小马 = 100担
      • 每种马至少1匹
      • 小马数量必须是偶数(因为两只小马运1担)

    2. 关键点分析:

    • 小马数量必须是偶数(i从2开始,每次加2)
    • 大马数量k = 100 - 小马数 - 中马数
    • 担数条件:3k + 2j + i/2 = 100
    • 需要保证k ≥ 1(大马至少1匹)

    3. 步骤规划:

    • 外层循环枚举小马数量(从2到100,步长为2)
    • 内层循环枚举中马数量(从1到100)
    • 计算大马数量 = 100 - 小马数 - 中马数
    • 检查大马数量≥1且满足担数条件
    • 输出满足条件的组合

    4. 代码对应:

    • for(int i=2;i<=100;i+=2) → 枚举小马数量(偶数)
    • for(int j=1;j<=100;j++) → 枚举中马数量
    • int k=100-i-j → 计算大马数量
    • if(k>=1&&i/2+k*3+j*2==100) → 检查大马≥1且担数=100
    • cout<<k<<" "<<j<<" "<<i<<endl → 输出大马、中马、小马数量
    • 1

    信息

    ID
    2339
    时间
    1000ms
    内存
    128MiB
    难度
    4
    标签
    (无)
    递交数
    416
    已通过
    204
    上传者