放蘋果與整數劃分問題(by幻星總結)

2021-06-15 20:13:49 字數 1073 閱讀 8161

放蘋果與整數劃分問題(

by幻星總結)

以下均假設

m>n,

對於m<=n

情況請程式設計時自己注意

設h(m,n)表示m

個數分成

n分,允許某分為

0

設g(m,n)表示m

個數分成

n分,不允許某分為

0

於是兩者關係為

h(m,n)=g(m+n,n)

下面給出兩種方法求

h(m,n),g(m,n)

關於自身的遞迴公式(一

)利用h(m,n)=sum(g(m,i),i=1..n)

(a)求

h(m,n)

的遞迴公式

h(m,n)=sum(g(m,i),i=1..n)

=sum(h(m-i,i),i=1..n)

=h(m-n,n)+ sum(h(m-i,i),i=1..n-1)

=h(m-n,n)+h(m,n-1)

(b)求

g(m,n)

的遞迴公式

g(m,n)=h(m-n,n)

=sum(g(m-n,i),i=1..n)

=g(m-n,n)+ sum(g(m-n,i),i=1..n-1)

=g(m-n,n)+ sum(g((m-1)-(n-1),i),i=1..n-1)

=g(m-n,n)+g(m-1,n-1)

(二)直接從意義上獲得遞迴公式

(a)求

h(m,n)

的遞迴公式

h(m,n)

可以分為至少一分為空

h(m,n-1)

和一分都不為空

h(m-n,n)

h(m,n)=h(m-n,n)+h(m,n-1)

(b)求

g(m,n)

的遞迴公式

g(m,n)

可以分為至少一分為1即

g(m-1,n-1)

和一分都不為1即

g(m-n,n)

g(m,n)=g(m-n,n)+g(m-1,n-1)

遞迴關係有了,就可以dp了

整數劃分問題(放蘋果問題)(遞迴)

將正整數n 表示成一系列正整數之和,n n1 n2 nk,其中n1 n2 nk 1 k 1 正整數n 的這種表示稱為正整數n 的劃分。正整數n 的不同的劃分個數稱為正整數n 的劃分數。標準的輸入包含若干組測試資料。每組測試資料是乙個整數n 0 n 50 對於每組測試資料,輸出n的劃分數。5,4 1,...

簡單整數劃分與放蘋果問題思考(遞迴)

這兩個問題幾乎是相同的,但是以放蘋果的方式來思考問題明顯會更易理解。下面先看一下兩個問題的描述。整數劃分 描述 將正整數n 表示成一系列正整數之和,n n1 n2 nk,其中n1 n2 nk 1 k 1 正整數n 的這種表示稱為正整數n 的劃分。正整數n 的不同的劃分個數稱為正整數n 的劃分數。分蘋...

pku 1664 放蘋果 整數劃分

題目 放蘋果 description 把m個同樣的蘋果放在n個 同樣的盤子裡,允許有的盤子空著不放,問共有多少種不同的分法?用k表示 5,1,1和1,5,1 是同一種分法。input 第一行是測試資料的數目t 0 t 20 以下每行均包含二個整數m和n,以空格分開。1 m,n 10。output 對...