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

2021-08-30 11:53:14 字數 1104 閱讀 8793

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[j]=='*'

d[i][j]=d[i-1][j-1]&(m[i-1]==t[j-1]) t[j]為其他

初始化:

d[0][0]=true; 其餘為false;

3,**

#include

#include

#include

using namespace std;

#if 0

題意:字串匹配

乙個待匹配字串m("*"0或多個任意字元,"?"1個任意字元),乙個驗證字串t

長度不超過50

輸出:符合條件的個數

思路:動態規劃

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]|d[i-1][j-1] t[j]=='*'

d[i][j]=d[i-1][j-1]&(m[i-1]==t[j-1]) t[j]為其他

初始化:

d[0][0]=true; 其餘為false;

#endif

char m[100],t[100];

int cnt_n; //待匹配的字串數目

bool d[51][51]; //儲存狀態

bool ismatch(const char* m,const char* t)

else

}return d[strlen(t)][strlen(m)];

}int main()

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

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

1,題意 n個節點,每個節點都有編號.k k 2 個葉子,可以組成多少這樣的樹.輔助方法 prufer code,選出標號最小的葉子點,刪除,輸出它的父親節點編號,直到剩餘兩個節點.得到乙個n 2的序列,就是prufer碼,可以證明其和樹是一一對應的.問題轉化為先從n個節點擊k個作為葉子,剩餘的n ...

國際大學生程式設計競賽例題 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...