#12024. Interesting Math / 趣味数学

Interesting Math / 趣味数学

Problem J36: Interesting Math / 趣味数学

版权信息: · 来源:马克思手稿中的趣味问题


任务总览

任务名称 时间限制 内存限制 分数
趣味数学 1 sec 1024 MB 10 points

题目描述

马克思在手稿中提出了一道趣味数学题:

有 30 个人在一家饭馆吃饭,总共花费了 50 先令。其中这 30 人中包括:

  • 男人,每人花费 3 先令;
  • 女人,每人花费 2 先令;
  • 小孩,每人花费 1 先令。

请你求出所有满足以下两个条件的整数解:

  1. 三类人数之和恰好为 30;
  2. 三类人的消费之和恰好为 50 先令。

输出所有可能的 $(男, 女, 小孩)$ 组合。


输入格式

无输入。


输出格式

输出所有满足条件的解。每个方案一行,格式如下:

男 女人数 小孩数

三类人数之间用一个空格隔开,行与行之间按男人人数递增顺序输出。


输入输出样例

输出示例

0 20 10
1 18 11
2 16 12
3 14 13
4 12 14
5 10 15
6 8 16
7 6 17
8 4 18
9 2 19
10 0 20

题目分析与解法

✅ 数学建模:

设男人数为 xx,女人数为 yy,小孩数为 zz,则:

image 将上述联立方程化简:

(3x+2y+z)(x+y+z)=50302x+y=20(3x + 2y + z) - (x + y + z) = 50 - 30 \Rightarrow 2x + y = 20进一步消元并枚举 xx 即可。


时间复杂度分析

操作 复杂度
枚举 xx O(11)O(11)
计算其余项 O(1)O(1)
总复杂度 O(1)O(1)(常数解)**