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...