poj 1664 放蘋果,整數的分拆

2021-09-30 09:47:16 字數 573 閱讀 1514

這個題其實很簡單,就是將m個相同的蘋果放入相同的盤子裡,問有多少種放法。

我想先對這個題進行一點的修改,如果放入不同的盤子裡,那麼結果就是x1+x2+x3+...+xn=m的解的個數,組合數學上叫多重集合的組合問題。

如果盤子不同,且盤子非空,那麼這個就是整數的有序分拆。也就是多重集合的組合中每乙個至少出現一次的那個結果。

而這個題中盤子是相同的,就是整數的無序分拆問題了。

n的k分拆是說,將n分成k個大於0的數。

整數的無序分拆中有乙個公式是:b(n+k,k) = b(n,1)+b(n,2)+b(n,3)+~~~b(n,k);

其中b(n,k)表式n的k分拆。

要上課了,貼一下**:

#include #include #include using namespace std;

int data[30][30];

int get(int m,int k)

data[m][k] = sum;

return sum;

}int main()

return 0;

}

POJ1664 放蘋果(整數劃分)

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

poj1664放蘋果 遞迴

放蘋果time limit 1000ms memory limit 10000k total submissions 23149 accepted 14694 description 把m個同樣的蘋果放在n個同樣的盤子裡,允許有的盤子空著不放,問共有多少種不同的分法?用k表示 5,1,1和1,5,1...

poj 1664 放蘋果 遞推

解題思路 我們不妨令f m,n 表示m個蘋果放到n個盤子裡有多少種放法,下面對不同的情況給予討論 1 當盤子數為1的時候,只有一種放法就是把所有蘋果放到乙個盤子裡。2 當蘋果數為0的時候,也只有一種放法。3 當m n時,也分兩種情況討論,一種是至少有乙個盤子裡不放蘋果,這樣子就相當於f m,n 1 ...