分球問題(DP C )

2021-07-04 05:55:40 字數 792 閱讀 6825



分球

【題目描述】有n個標號的球分到m個無差別的盒子裡,每個盒子至少有乙個球,問方案數?

【輸入檔案】

每部分一行兩個數n,m。

【輸出檔案】

每組資料一行乙個數,表示方案數。

【樣例輸入】

4 2【樣例輸出】

7【樣例解釋】

n=4,m=2

1,2 3 4

2,1 3 4

3,1 2 4

4,1 2 3

1 2,3 4

1 3,2 4

1 4,2 3

【資料規模】

對於20%的資料,滿足1=很簡單的dp,i個球放在j個盒子裡的情況數等於i-1個球放在j個盒子裡的情況數×j加上i-1個球放在j-1個盒子中的情況數,相當於第i個球可以放在j個盒子中任意乙個,或者第i個球放在第j個新的盒子裡。狀態轉移方程f[i][j]=f[i-1][j]*j+f[i-1][j-1]。注意初始化f[0][0]=1,其餘都是0,**如下

#include #include #include using namespace std;

int f[101][101];

int main()

{ int n,m;

int i,j;

cin >> n >> m;

memset(f,0,sizeof(f));

f[0][0]=1;

for(i=1;i<=n;i++)

{ for(j=1;j<=m;j++)

{ if (i

回文串問題(動態規劃DP C )

乙個字串,如果從左到右讀和從右到左讀是完全一樣的,比如 aba 我們稱其為回文串。現在給你乙個字串,可在任意位置新增字元,求最少新增幾個字元,才能使其變成乙個回文串。任意給定的乙個字串,其長度不超過1000.能變成回文串所需新增的最少字元數。在這裡給出一組輸入。例如 ab3bdabb在這裡給出相應的...

計數問題 數字統計DP(c )

acwing 338.計數問題 給定兩個整數 a 和 b,求 a 和 b 之間的所有數字中0 9的出現次數。例如,a 1024,b 1032,則 a 和 b 之間共有9個數如下 1024 1025 1026 1027 1028 1029 1030 1031 1032 其中 0 出現10次,1 出現1...

魔術球問題

列舉放的球,先假設新建柱子,拆成兩個點,第乙個點連s,表示後面還可以放 第二個連t表示放到其他柱子上 再列舉放過的數和它是否組成完全平方數,列舉的數的第乙個點向它的第二個點連邊,表示這個球可以放到其他球上,容量都為一 每次跑最大流出來的表示會消掉的柱子個數,如果此時球 消去的比n大則break輸出答...