NOIP2001普及组 数的划分

来源:互联网 发布:addlistener js 编辑:程序博客网 时间:2024/05/18 02:30

数的划分

问题描述

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

例如:n=7,k=3,下面三种分法被认为是相同的。

1,1,5; 1,5,1; 5,1,1;

问有多少种不同的分法。

分析:常见的题,递推公式:f[i,j]=f[i-1,j-1]+f[i-j,j];(1<=i<=n,1<=j<=k);

时间复杂度

O(n*k)

代码

const
  maxn=1000;
var
  n,k,i,j:longint;
  f:array[-100..maxn,-100..maxn] of longint;
begin
  readln(n,k);
  f[0,0]:=1;
  for i:=1 to n do
    for j:=1 to k do
      f[i,j]:=f[i-1,j-1]+f[i-j,j];
  write(f[n,k]);
end.

0 0
原创粉丝点击