hdu 1251 統計出以某個字串為字首的單詞數量
hdu 1800 要求的就是有幾個遞減的序列,也就是找到最多重複的值。
hdu 1247
離線處理
這個題很蛋疼,不僅不告訴你字串的長度,而且ac**對於ab abab 這種情況的結果竟然是ab
hdu 1671
順序插入即可,插入時判斷,是否存在其字首或者插入的號碼是否是其它號碼的字首。
hdu 2846 (*)
對於商品名為abcd的商品,拆為abcd,bcd,cd,d,插入字典樹。
在每個結點處,記錄該有多少商品名包含該字串。
(根據字典樹查詢時的限制,只能從root開始 考慮,所以必須拆商品名)
字典樹的題目 開陣列時要十分小心,有時候題目給的記憶體限制,還不夠極端情況,這個時候盡量開大,有的時候陣列開小了,返回的是wa。
hdu 2492 (列舉+掃瞄)
列舉裁判位置,l1[x]*r2[x]+l2[x]*r1[x]即為答案。
維護樹狀陣列從左往右,從右往左掃瞄兩次即可。
hdu 1394 求最小逆序數
先求出初始狀態的逆序數
之後維護乙個樹狀陣列進行n-1次變換,
每次都可在短時間內更新當前逆序數。(考慮最左數移動到最右邊造成的影響)
hdu 2852 kiki's k-number (二分+樹狀陣列)
樹狀陣列是公升級版的的字首和sum,這個題還是利用[x,y]=sum(y)-sum(x-1);
題解hdu 5372 segment game 離散化+樹狀陣列
官方:對於新插入的線段,查詢有多少個線段左端點大於等於該線段的左端點。 再查詢有多少個線段的右端點大於該線段右端點, 兩者之差就是答案。用兩個樹狀陣列搞定。時間複雜度nlog
其實也= 查詢右端點小於等於該線段右端點數目-左端點小於該線段數目
這個公式成立必須有乙個前提:那就是題目中給出條件的放寬版:新增的線段長度是不遞減的。
並查集刪點:
就是將已經連上的點孤立,孤立乙個點,相當於建立乙個新點,原來的點作廢,不用真的刪除。
帶權並查集:
注意:數可能是負的,一句話的正確與否取決於前面形成的認知,不能否定認知。
hdu 3038 how many answers are wrong 題解
資料結構整理
常見資料結構 陣列 一對一 棧佇列 鍊錶樹 一對多 圖 多對多 堆雜湊 資料結構是指相互之間存在著一種或多種關係的資料元素的集合和該集合中資料元素之間的關係組成 常用的資料結構有 陣列,棧,鍊錶,佇列,樹,圖,堆,雜湊表等,一.陣列 優點 1 按照索引查詢元素速度快 2 按照索引遍歷陣列方便 缺點 ...
資料結構習題聯絡
給定單向鍊錶的頭指標和乙個要刪除的節點的值,定義乙個函式刪除該節點。返回刪除後的鍊錶的頭節點。示例 1 輸入 head 4,5,1,9 val 5 輸出 4,1,9 解釋 給定你鍊錶中值為 5 的第二個節點,那麼在呼叫了你的函式之後,該鍊錶應變為 4 1 9.遞迴 definition for si...
整理 資料結構 堆
一 堆的定義 堆的定義是 n個元素的序列,當且僅當滿足如下關係時被成為堆 1 ki k2i 且 ki k2i 1 或 2 ki k2i 且 ki k2i 1 i 1,2,n 2 當滿足 1 時,為最小堆,當滿足 2 時,為最大堆。最大堆和最小堆的例子 堆常用來實現優先佇列,在這種佇列中,待刪除的元素...