【POJ-1664】解题报告(递推,dp)
原始题目
放苹果
- Time Limit: 1000MS
- Memory Limit: 10000K
- Total Submissions: 37069
- Accepted: 22825
Description
把 M 个同样的苹果放在 N 个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用 K 表示)5,1,1 和 1,5,1 是同一种分法。
Input
第一行是测试数据的数目$ t(0 t 20)$。以下每行均包含二个整数 M 和 N,以空格分开。 $ 1 M , N 10 $。
Output
对输入的每组数据 M 和 N,用一行输出相应的 K。
Sample Input
1
7 3
Sample Output
8
Source
lwx@POJ
题目大意
如题
解题思路
- \(dp[i][j]\) 表示 i 个苹果 j 个盘子的分法。
- 状态转移: - 当\(i<j\)时,\(dp[i][j]=dp[i][i]\) (不区分盘子,所以盘子多余的情况数和盘子恰好和苹果数相等的情况数相等) - 当\(i\geqslantj\),\(dp[i][j]=dp[i-j][j]+dp[i][j-1]\) (每个盘子都有苹果和有一个盘子没有苹果两种状况转移) 注意初始的情况就好。
解题代码
1 |
|
收获与反思
注意边界情况的考量
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!