國際大學生程式設計競賽例題 4,6樹

2021-08-30 12:14:48 字數 795 閱讀 6496

1,題意:n個節點,每個節點都有編號.k(k>=2)個葉子,可以組成多少這樣的樹.

輔助方法:prufer code,選出標號最小的葉子點,刪除,輸出它的父親節點編號,直到剩餘兩個節點.

得到乙個n-2的序列,就是prufer碼,可以證明其和樹是一一對應的.問題轉化為先從n個節點擊k個作為葉子,剩餘的n-k個符號擴充套件為n-2長度的序列,即是對應的一種的方案.

結果:對2007取模

2,實現**:

#include

using namespace std;

const int max=105;

const int m=2007;//取模

int c[max][max]; //c[i][j]表示i個數取j個的組合數

//利用動態規劃求:c[i][j]=c[i-1][j](沒有用第j個)+c[i-1][j-1](用到了第j個)

int g[max][max];//g[i][j]:表示j個字元構造長為i的方案數(所有字元都要用到)

//g[i][j]=j*g[i-1][j]+j*g[i-1][j-1]

void init()

memset(g,0,sizeof(g));

g[0][0]=1;

for(int i=1;i<=100;i++)

for(int j=1;j<=i;j++)

g[i][j]=(j*g[i-1][j]+j*g[i-1][j-1])%m;

}int main()

return 0;

}

國際大學生程式設計競賽例題 1 2 求和

題目大意 不計進製的加法,進製範圍 2到16 例如 55 67 十進位制 55 add 67 12 二進位制 110111 add 1001100 1111011 123 輸入 2 10 兩個區域,十進位制加 3 69 15 輸出 從3到6 加上 從9到15的和 解答 include using n...

國際大學生程式設計競賽例題 1 4 旅館

1,題意 字串匹配 乙個待匹配字串m 0或多個任意字元,1個任意字元 乙個驗證字串t 長度不超過50 輸出 符合條件的個數 2,思路 動態規劃 d i j 表示m的前i個字元和t的前j個字元匹配的結果.轉移方程 d i j d i 1 j 1 t j d i j d i j 1 d i 1 j t ...

國際大學生程式設計競賽例題 5 4 最小值

1.題意 s cnt s t cnt t cnt t cnt s.返回t s的絕對值和的最小值.cnt s個元素 2.思路 動態規劃 d i j 表示t的前j 1個數和s的前i 1個數匹配,得到的最小值.轉移方程 d i j d i 1 d j 1 abs s i t j i j d i j min...