题目地址:http://acm.pku.edu.cn/JudgeOnline/problem?id=1664
方法一、
f(i,j):前i个盘总共放j个果的方法数,结果在f(n,m)中,1个盘时不论果数多少,只有1种方法。
f(i,j)=f(i-1,j)+f(i,j-i),前者表示第i个盘为空(保证至少1个盘空)放j个果的方法数,
后者表示没有1个盘空的方法数,为保证这点,先在每个盘放1个,剩下j-i个任意放,
方法二、
f(i,j):前i个盘共放j个果的方法数,结果在f(n,m)中,1个盘时不论果数多少,只有1种方法。
f(i,j)=sum(f(i-1,j-k*i)),j-k*i>=0,
f(i-1,j-k*i)表示其中有k个盘各放i个的方法数。
DP是王道,状态表示要明确,转移方程更要考虑好,初值多少,结果在哪里都要想清楚。
其中方法二中用了整数拆分的思想,更清楚的解释请看转贴的pku 1664 放苹果 csflx 解题分析