hdu3172 字典樹 並查集

2021-09-30 15:04:47 字數 759 閱讀 8850

題意是 如果2個人是朋友 則他們朋友的朋友也是他們的朋友 這樣就組成了一圈朋友 他們就有很多朋友了 輸入 2個人的名字 為2個字串

表示2個人是朋友 並且在同時輸出他們的朋友圈有多大 注意 人數最多為100000 很多哦

顯然不能用 暴力去給字串分配編號 太大了人 那樣肯定超時

就必須要用字典樹了

#include#include#include#includestruct haha

;struct haha *root;

struct haha *build()

int cs,parent[200010],rank[200010];

int getnum(char *t)

else p=p->next[u];

} if(p->cnt==0) p->cnt=++cs;//走到串對應的終點了 這時候在串的末尾對應的節點上給其編號

return p->cnt; //分配的編號

}int find(int x)

void del(struct haha *p)

free(p);

p = null;

}int main()

root=build();

for(i=1;i<=n;i++)

printf("%d\n",rank[n1]);

}del(root);//刪除整棵樹 每次都要刪除整棵樹 否則會錯

} }return 0;

}

POJ 2513(字典樹 尤拉路 並查集)

本題題意是給一堆木棒,每種木棒左右兩端有兩種顏色,木棒進行拼接的時候,只有相同顏色之間才可以拼接,問最後是否可以將所有木棒拼為一根木棒。我們考慮把同一種顏色的點聚在一起,我們就可以得到乙個無向圖,如果這個無向圖是尤拉圖,代表展開之後可以一筆走完,也就是可以連線成一條木棒。所以我們用trie樹判斷每種...

hdu 1251 字典樹入門

ignatius最近遇到乙個難題,老師交給他很多單詞 只有小寫字母組成,不會有重複的單詞出現 現在老師要他統計出以某個字串為字首的單詞數量 單詞本身也是自己的字首 input 輸入資料的第一部分是一張單詞表,每行乙個單詞,單詞的長度不超過10,它們代表的是老師交給ignatius統計的單詞,乙個空行...

HDU1251字典樹模板

problem description ignatius最近遇到乙個難題,老師交給他很多單詞 只有小寫字母組成,不會有重複的單詞出現 現在老師要他統計出以某個字串為字首的單詞數量 單詞本身也是自己的字首 input 輸入資料的第一部分是一張單詞表,每行乙個單詞,單詞的長度不超過10,它們代表的是老師...