您的位置:首页 > 其它

DP·整数划分

2017-09-30 12:08 176 查看
【题目表述】

n=m1+m2+…+mi; (其中mi为正整数,并且1 <= mi <= n),则{m1,m2,…,mi}为n的一个划分。

如果{m1,m2,…,mi}中的最大值不超过m,即max(m1,m2,…,mi)<=m,则称它属于n的一个m划分。这里我们记n的m划分的个数为f(n,m);

举个例子,当n=5时我们可以获得以下这几种划分(注意,例子中m>=5)

5 = 5

= 4 + 1

= 3 + 2

= 3 + 1 + 1

= 2 + 2 + 1

= 2 + 1 + 1 + 1

= 1 + 1 + 1 + 1 + 1

题解~

*1、动态规划法

*2、组合数学 生成函数(母函数)法(拓展)

用指数来表示可以表示的数字,利用多项式乘法和指数的运算性质(相乘指数和相加),利用二项式定理等解决问题!!

是我前几天在知乎看到一道数学题去百度看到了一个新世界!!!

(数学太巧妙了,不禁感叹)

后来问了我的数学老师

发现和一题期中还是期末考过的数学题目的想法思路是一样的,虽然那题我错了2333

是一个abcd四个元素组成的集合映射到1,2,3,4的这个集合,问fa>=fb>=fc>=fd有几种

大家不妨可以试试!~~有人回答我就把答案公布在评论里2333

具体的大家自行百度,讲解的都很详细易懂,自学有益~~。

如1可表示的数字可写为 X^0+X^1;

2可表示的数字为X^0+X^1+X^2

依次类推

将上述式子相乘

得到当x=n时,该项的系数则是能组成该数字(指数的数字)的方案数

作为编程只要模拟一下这个过程就可以了~~

妙妙妙~!

orz感叹这是谁想出来这种生成函数的想法啊orzzzz服了

(代码回头填坑)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  dp