【发布时间】:2013-01-26 14:11:09
【问题描述】:
说明:
有一天,蜻蜓收到了 n 块巧克力。在决定将巧克力分发给他的 m 个朋友后,他想出了以下规则:
首先他会根据友谊的亲密程度将他的朋友从 1 到 m 排名
1234563 ,其中位置一的朋友不应该得到超过k个巧克力(所以
F[1] <= k)有些朋友可能会得到零巧克力。
如果可能,Dragonfly 应该没有巧克力。他牙痛,不应该吃糖果。
k 是一个正数。
虽然不精通数学,但 Dragonfly 很想知道所有巧克力的分发方式有多少。所以他在寻求你的帮助
输入:
输入文件由一系列输入行组成,每行定义一个案例。每种情况的输入都是一行三个正整数:
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
我尝试了递归方法,但超出了时间限制。然后我尝试用队列代替递归,但超出了内存限制。这是关于动态规划的问题吗?谁能给个提示?
【问题讨论】:
标签: algorithm dynamic-programming