您的位置:首页 > 其它

整数划分 ,DP 或者直接递归(备忘录消除重复)

2010-03-26 20:02 260 查看
http://acm.pku.edu.cn/JudgeOnline/problem?id=1664

将整数n可以划分为多少种呢?

将整数n有多少种最大数为m的划分呢?

用ANS
[M]表示,N的划分中,最大数不超过M的种类

(不超过==”最大数”可以是 1到M的任意数)

分情况讨论:

1) M==1 , ANS
[M]=1;(全部由1组成)

2) M>N , ANS
[M]=ANS

;由于最大数不能也不可能超过N

3) M==N , ANS

=ANS
[N-1]+1; (<=N等价于==N U <N,<N==(<=N-1)即 1+ANS
[N-1])

4) M<N , ANS
[M]=ANS
[M-1]+ANS[N-M][M]

一种是递归调用,利用备忘录避免重复

也可以直接用DP.比较简单
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: