uestc oj 1828 中二少女與字串

2021-06-14 19:32:01 字數 802 閱讀 4843

中二少女與字串

第一次寫字典樹  參照了別人的寫法,下面**是自己所寫。

此題運用字典樹

因為此題要計算不重複的所有好串個數運用字典樹,每次新建乙個節點就res++ 當遇到相同的好串的時候一定不會新建

節點的。

建立乙個結構體node  裡面是26個相同的node節點next  分別對應著a~z26個字母

首先建立乙個空樹 當後繼節點next[i] 為空時 說明這個節點的串還未找到

在輸入待測字串和壞串最大長度之後,求出字串的長度然後依次從第乙個字母開始遍歷陣列

每次遍歷的結束條件是壞字母個數大於k或者到達字串結束處

每次新建節點時res++(將res設為全域性變數) 最後就可以輸出總數

字典樹時間複雜度:它的插入和查詢複雜度都為o(len),len為單詞(字首)長度  

空間複雜度為o(26^n)這也太大了

#include#include#define n 4000000

struct node

;node tree[n];

int t,len,res,k; char num[26]; char s[1600]; char *str;

int id;

node* createnewid()

void find(node* now,char* str,int count)

else

}int main()

printf("%d\n",res);

}return 0;

}

uestc oj 1690 最少花費

最少花費 其實這個題目跟我要長高很像的,都是需要用單調佇列優化dp來解決的 只是這個題目多了乙個條件山與山之間的高度差不能超過k 狀態規劃方程 dp i x min dp i 1 y a abs x y hill i x 2 也是分高於前一座山還是低於前一座山來進行計算的 只是在佇列node裡面要加...

careercup 高等難度 18 2

18.2 編寫乙個方法,洗一副牌。要求做到完美洗牌,換言之,這幅牌52!種排列組合出現的概率相同。假設給定乙個完美的隨機發生器。解法 假定有個陣列,含有n個元素,類似如下 1 2 3 4 5 利用簡單構造法,我們不妨先問自己,假定有個方法shuffle 對n 1個元素有效,我們可以用它來打亂n個元素...

uestc oj 1685 我要長高

這是一道動態規劃的dp問題 但是明顯需要o n 3 的時間複雜度 顯然需要進行優化,並且有明顯的可以進行單調佇列優化的特徵,在本次確定高度之後,總能在前一次當中尋找到乙個最優解。最優解當然是由上一次的積累量 本次積累量 其中上一次的積累量與本次的積累量之間無關聯 就是說dp i 1 k 的積累量只是...