[NYOJ571] 整数划分(三) [递推计数][整数划分]

[ L i n k \frak{Link} Link]
[ S u m m a r y \frak{Summary} Summary]


输入n,k。要求输出:
第一行: 将n划分成若干正整数之和的划分数。
第二行: 将n划分成k个正整数之和的划分数。
第三行: 将n划分成最大数不超过k的划分数。
第四行: 将n划分成若干个奇正整数之和的划分数。
第五行: 将n划分成若干不同整数之和的划分数。
第六行: 打印一个空行


第六行是什么鬼.gif

五个整数划分的经典问题。
第一个问题。单纯只有 n \mathcal{n} n的话并不好怎么讨论,考虑自己加限制。
能加的限制就是让划分出来的数不大于 m \mathcal{m} m F ( i , j ) \mathcal{F(i,j)} F(i,j)
分类讨论:每个数都小于 j \mathcal{j} j还是有至少一个数为 j \mathcal{j} j
第二种情况可以直接从 F ( i − j , j ) \mathcal{F(i-j,j)} F(ij,j)转移过来。
第一种情况就是 F ( i , j − 1 ) \mathcal{F(i,j-1)} F(i,j1)

第二个问题的讨论

第三个问题被第一个问题讨论了。

第四个问题由于全部奇偶性要相同,可以考虑对转移的时候对所有数同时加一。
新划分出一个数就是新加上一个一,这个要在奇数状态下进行。
所以就跟第二个问题比较类似。不过得分奇偶性。

第五个问题跟第一个问题比较类似。
考虑套用的时候重复计数的部分、
显然是第二种情况。
那么第二种情况改成从 F ( i − j , j − 1 ) \mathcal{F(i-j,j-1)} F(ij,j1)转移。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值