做回菜鳥,老老實實重新學起:
動態模版:
//動態鍊錶實現
#define maxn 26
struct node
;node *root;
//字典樹建立
void createtrie(char *str)
else
}}//查詢
int findtrie(char *str)
return p->v;//返回以此為字首的串的數量
}//釋放空間
int dealtrie(node* t)
free(t);
return 0;
}void solve(int n,int m)
}tree[1000005];
void insert_tree(char *str)
j = tree[j].next[t];
tree[j].r++;//記錄以此為字首的單詞的數量
i++;
}}void query_tree(char *str)
j=tree[j].next[t];
i++;
}res=tree[j].r;//以此為字首的單詞的數量
}
題意:求給出字典中每個單詞能夠被特別的分別出最短字首;
思路:字典樹模版,遇到小於2的節點停止即可;
code:
#define n 123456s
#define maxn 26
char s[n][30];
struct node
;node *root;
//字典樹建立
void createtrie(char *str)
else
}}//查詢
int findtrie(char *str)
return p->v;//返回以此為字首的串的數量
}//釋放空間
int dealtrie(node* t)
free(t);
return 0;
}void solve()
for(j=0;j}int main()
菜鳥系列 劃分樹
做回菜鳥,老老實實重新學起 資料結構 求k大值及左右和模版 define n 123456 int sorted n 對原集合中元素排序後的值 int val 20 n val記錄第k層當前位置的值 int num 20 n 記錄元素所在區間當前位置前的元素進入到左子樹的個數 int lnum,rn...
菜鳥系列 最小生成樹
菜鳥就要老老實實重新學起 prim 遍歷所有點,找到最近的點加入樹中,更新距離陣列dist 鄰接矩陣存圖。模版 define n 1010 bool vis n int g n n dist n int prim int n return res 鄰接表存圖,公升序排列所有邊,並查集維護點集合,遍歷...
菜鳥授徒系列之母函式
這是第二次接觸母函式類問題,相比於第一次的朦朦朧朧,第二次更加深刻。深深地感到母函式的強大,真是解決組合問題的一 寶,將做過的題分類 總結加深一下記憶。母函式包括 普通生成函式 解決組合問題 指數生成函式 解決排列問題 這裡全部是普通生成函式,可解決一系列組合問題,做題時要將題意與生成函式 g x ...