POJ 3630 一道簡單的字典樹

2021-08-26 08:00:11 字數 492 閱讀 2515

刷刷更健康...這道題掌握了字典樹難度不大...關鍵是如何判斷是否有串是某串的字首~~...這個我是用個陣列記住每個字串末尾節點的位置~~做的時候是經過乙個點就+1...最後只要判斷所有的末尾節點是不是都為1~~~如果都為1當然就說明沒有誰為誰的字首字串~~反之就是有串是某串的字首字串~~

program:

#includeusing namespace std; struct node a[200001]; int t,n,len,judge[10001],g,i; char s[20]; bool f; void find(int h,int k) a[h].s[s[k]-'0']=g; } find(a[h].s[s[k]-'0'],k+1); return; } int main() f=true; for (i=1;i<=n;i++) if (a[judge[i]].k!=1) f=false; if (f) printf("yes\n"); else printf("no\n"); } return 0; }

poj 3630 簡單Trie樹的應用

學了trie樹 學習trie樹相關的內容,猛搓這!來做這題,感覺挺簡單的,邊輸入邊判斷是否存在是否有字首 prefix 這樣的話要考慮兩種情況,一種是前面的某個串是該串的字首,或者該串是前面某個串的字首。寫完,提交,tle!原來不能用動態建樹的方法,必須用靜態樹!後來再提交,wa。哎。糾結死我了。跟...

poj 3630 簡單Trie樹的應用

學了trie樹 學習trie樹相關的內容,猛搓這!來做這題,感覺挺簡單的,邊輸入邊判斷是否存在是否有字首 prefix 這樣的話要考慮兩種情況,一種是前面的某個串是該串的字首,或者該串是前面某個串的字首。寫完,提交,tle!原來不能用動態建樹的方法,必須用靜態樹!後來再提交,wa。哎。糾結死我了。跟...

poj 3087(一道簡單的模擬)

題目是乙個很明顯的模擬,兩個等長字串交錯合併,並更新兩個字串為合併後字串的前後兩個部分,求合併成給定字串的最少次數。模擬合併的過程就可以了,唯一需要注意的就是如果不能合成指定字串會形成乙個迴圈。include include includeusing namespace std const int ...