整数分拆

整数分拆,是指将一个正整数表示为若干个正整数的和
一、有序分拆
分拆时考虑顺序差异
隔板法,组合数
二、无序分拆
不考虑顺序差异
\(dp[i][j]\)表示拆分\(i\),最大加数不超过\(j\)的方案数

for(int i=1;i<=n;i++)dp[i][1]=1;
for(int i=1;i<=n;i++)
{
    for(int j=2;j<=n;j++)
    {
        if(i<j)dp[i][j]=dp[i][j-1];
        else if(i==j)dp[i][j]=(dp[i][j-1]+1)%mod;
        else dp[i][j]=(dp[i][j-1]+dp[i-j][j])%mod;
    }
}

无序分拆性质
1、整数\(n\)拆分成最大数为\(k\)的拆分数,和\(n\)拆分成\(k\)个数的和的拆分数相等。
(设\(Ferrers\)图像的每一行的格子数为每个加数大小,则整数\(n\)拆分成\(k\)个数的和的拆分可用\(k\)行的图像表示,共轭图像最上面有\(k\)个格子)
2、整数\(n\)拆分成最多不超过\(m\)个数的和的拆分数,和\(n\)拆分成最大不超过\(m\)的拆分数相等。(和上一条同理)
3、整数\(n\)拆分成互不相同的若干奇数的和的拆分数,和\(n\)拆分成自共轭的\(Ferrers\)图像的拆分数相等。
(设\(n=(2n_1+1)+(2n_2+1)+……+(2n_k+1),\)其中\(n1>n2>...>n_k\),构造一个\(Ferrers\)图像,其第一行、第一列都是\(n_1+1\)格,对应于\(2n_1+1\),第二行,第二列各\(n_2+1\)格,对应于\(2n_2+1\),以此类推。由此得到的\(Ferres\)图像是共轭的)

posted @ 2020-05-28 14:44  Zeronera  阅读(924)  评论(0)    收藏  举报