首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

wikioi-1039-数的区划

2013-09-26 
wikioi-1039-数的划分将整数n分成k份,且每份不能为空,任意两种划分方案不能相同(不考虑顺序)。dp[i][j]:把

wikioi-1039-数的划分

将整数n分成k份,且每份不能为空,任意两种划分方案不能相同(不考虑顺序)。

dp[i][j]:把数i分成k分的方案数

则:dp[i][j]=sum(dp[i-j][t])(t>=1&&t<=j)

#include <iostream>#include<stdio.h>#include<cstring>#include <algorithm>using namespace std;int dp[501][21];int main(){    int n,k,i,j,t;    while(~scanf("%d %d",&n,&k))    {        memset(dp,0,sizeof(dp));        for(i=0;i<21;i++)dp[i][i]=1;        for(i=1;i<=n;i++)        {            for(j=1;j<=k&&j<i;j++)            {                for(t=1;t<=j;t++)                {                    if((i-j)>=t)dp[i][j]+=dp[i-j][t];                }            }        }        cout<<dp[n][k]<<endl;    }    return 0;}


热点排行