描述:
有一天,蜻蜓收到了 n 块巧克力。在决定将巧克力分发给他的 m 个朋友后,他提出了以下规则:
首先,他将根据友谊的亲密程度从 1 到 m 对他的朋友进行排名
其次,如果等级 i 的朋友得到 x 个巧克力(so
F[i]=x
),那么第 i 位的朋友x+1
应该得到不少于 x 个巧克力并且不超过x+k
巧克力(sox <= F[i+1] <= x +k
),其中k
是一个正数。位置一的朋友不应该得到超过k个巧克力(所以
F[1] <= k
)有些朋友可能会得到零巧克力。
如果可能的话,蜻蜓应该没有巧克力。他牙痛,不应该吃糖果。
虽然不精通数学,但蜻蜓渴望知道所有巧克力的分发方式有多少。所以他在寻求你的帮助
输入:
输入文件由一系列输入行组成,每行定义一个案例。每种情况的输入是一行三个正整数:
N (1 <= n <= 500), m (1 <= m <= 100), k (1 <= k <= 100).
输入文件将由0 0 0
.
输出:
对于每种情况,输出所有巧克力可以在一行上分布的方式数。
样本输入:
1 1 1
4 2 2
5 3 2
0 0 0
输出:
1
2
3
原文页面:http ://acm.whu.edu.cn/learn/problem/detail?problem_id=1031
我尝试了递归方法,但超出了时间限制。然后我尝试用队列代替递归,但超出了内存限制。这是关于动态规划的问题吗?谁能给我一个提示?