• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            posts - 43,  comments - 9,  trackbacks - 0
            字符串少量習題小結.

            spoj694(易) 后綴數組
            求一個字串的不同子串個數.
            按rank考慮子串.加入子串S[i]時,獲得了len-Sa[i]個不同子串.但其中height[i]個已經屬于S[i-1]了,所以實際子串數增加了len-Sa[i]-S[i-1]. 順序掃一遍height數組即得解.

            spoj687(中) 后綴數組
            求一個串的重復次數最多的連續重復子串.
            設周期為L的連續重復子串存在,則點0,L,2L,...,kL必能覆蓋到一個完整周期. 因此對L,考察這些點的字符相等情況,LCP情況,可得到L的解.
            枚舉L.
            復雜度是O(n/1+n/2+...+n/n) = O(nlogn)

            pku3693(中) 后綴數組
            同spoj687,只是結果還要輸出字典序最小的滿足條件的串.可以借助rank數組直接比較字典序.只是要注意在考察點kL時,要把以(k-1)L+1,...,(k+1)L-1為起點的子串都訪問一遍找最小rank者.

            pku1743(中) 后綴數組
            找一個串的最長不重疊相同子串.
            由于某子串可能整體加上(或減去)相同偏移量,因此不直接對原串操作,而是構造新串b, 其中b[i]=a[i]-a[i-1]. 此時求得最長不重疊相同子串的長度+1便是結果.
            可以二分長度,或者棧掃描(*)直接求最大長度.

            whu1084(易) 后綴數組
            求重復次數最多的不重疊子串長度
            spoj687的簡單版,不要求循環節連續,直接二分長度即可.

            pku2778(易) 多串匹配+DP AC自動機,trie圖
            字符集大小為4, 給出m個(m<=10)禁止單詞(長度<=10), 求長度為n(n<=2*10^9)的不包含任何禁止單詞的串的個數.
            對禁止單詞建立trie圖,并計算出圖中任意合法結點之間的轉移數,這樣便求得1步轉移矩陣.
            做n次方后的矩陣,第1行中屬于合法狀態的元素之和即為解.
            禁止單詞總長度不超過100,因此合法狀態亦<100.總復雜度100^3*logN

            zju3228(中) Searching the String 后綴數組,AC自動機,trie圖
            原串長10^5, 現在有10^5次查詢, 每次查詢一個長度<=6的模式串在原串中的最大匹配次數.
            模式串的匹配方式有可重疊和不可重疊兩種, 需針對查詢的類型返回相應值.
            后綴數組解法(在線):
            對原串建立sa和height數組.由于模式串長度最大只有6, 我們可以將height數組分別按L=1..6分組,預處理求出相應長度每組內不重疊子串的最大匹配次數,此過程O(6*nlogn).
            另外由于sa數組將所有后綴按字典序排好了,所以對一個詢問, 可以二分找到它在sa中第一次出現的位置p1和最后一次出現的位置p2, 則p2-p1+1就是可重疊匹配的答案. 對不可重疊匹配,只需直接返回p1處預處理時的值. 每次查詢O(logn).
            trie圖,AC自動機解法(離線):
            把所有查詢建trie圖, 對圖中的每個有效結點維護:該串長度,兩類查詢的計數,該串上一次被匹配的位置, 還要用個鏈表記下這個串屬于哪些查詢.
            剩下的就是經典的自動機多串匹配了.


            (*)關于棧掃:
            height數組具有區間性,各個不同前綴被相應的極小值隔開,而一個區間中又有多個子區間.各區間值大于區間端點的部分互不影響.因此可以維護一個存放height值不減的棧,棧中每個元素的附屬值, 記錄了它在棧中相鄰的兩個元素為端點的連續區間內所有height值不小于它的必要信息.比如此題要記錄height>=k的連續區間內sa[i] 的最大值和最小值.
            棧掃描的經典例子移步pku2559.


            (**)trie圖備忘:
            比trie樹多了個后綴指針psuf. 設當前結點字母為c, 則psuf指向父親的后綴的pch[c].
            trie樹中的后代結點指針pch(已經更名為狀態轉移指針),當相應后代存在時,指向后代;否則指向當前結點的后綴的相應后代,即pch[k]=node[pa].pch[k].
            后綴指針: 在接下來的狀態轉移中,當前結點與它的后綴結點等價.
            后代結點指針: 在當前狀態下,接收到字符ch時,轉移到pch[ch]指向的結點.
            posted on 2009-07-16 19:10 wolf5x 閱讀(1538) 評論(2)  編輯 收藏 引用 所屬分類: acm_icpc

            FeedBack:
            # re: 字符串匹配 后綴數組 trie圖(更新)
            2009-09-23 15:19 | 小狗
            O(n*(n/1+n/2+...+n/n)) = O(nlogn)

            這里有錯~~  回復  更多評論
              
            # re: 字符串匹配 后綴數組 trie圖(更新)
            2009-10-08 17:17 | <A href="mailto:wolf5x1016@gmail.com"
            @小狗
            Thanks~~ 手誤了  回復  更多評論
              
            <2010年4月>
            28293031123
            45678910
            11121314151617
            18192021222324
            2526272829301
            2345678

            "Do not spend all your time on training or studying - this way you will probably become very exhausted and unwilling to compete more. Whatever you do - have fun. Once you find programming is no fun anymore – drop it. Play soccer, find a girlfriend, study something not related to programming, just live a life - programming contests are only programming contests, and nothing more. Don't let them become your life - for your life is much more interesting and colorful." -- Petr

            留言簿(3)

            隨筆分類(59)

            隨筆檔案(43)

            cows

            搜索

            •  

            最新評論

            評論排行榜

            欧美日韩中文字幕久久久不卡| 日韩欧美亚洲国产精品字幕久久久| 久久人妻AV中文字幕| 国产欧美久久久精品影院| 久久99精品久久久大学生| 亚洲av日韩精品久久久久久a| 久久久亚洲欧洲日产国码二区| 国产精品久久久久久一区二区三区 | 久久精品国产亚洲一区二区| 一本大道加勒比久久综合| 久久伊人中文无码| 亚洲va中文字幕无码久久| 精品久久久久久成人AV| 久久精品夜色噜噜亚洲A∨| 国产成人无码精品久久久性色| 91精品国产91久久久久福利| 色偷偷88欧美精品久久久| 蜜臀av性久久久久蜜臀aⅴ| 99久久99久久精品国产片果冻| 午夜精品久久久久成人| 精品国产91久久久久久久| 一本久久综合亚洲鲁鲁五月天亚洲欧美一区二区 | 久久婷婷色综合一区二区| 国内精品久久久久久野外| 午夜福利91久久福利| 色综合久久天天综合| 欧洲人妻丰满av无码久久不卡| 人妻无码久久精品| 亚洲国产精品婷婷久久| 亚洲AV日韩AV天堂久久| 中文字幕精品久久久久人妻| 伊人色综合久久天天| 国产综合久久久久| 久久婷婷五月综合国产尤物app | 国产福利电影一区二区三区久久久久成人精品综合 | 久久久久久狠狠丁香| 久久久精品人妻一区二区三区蜜桃 | 热综合一本伊人久久精品| 国产精品九九久久免费视频 | 久久国产色av免费看| 亚洲精品午夜国产va久久|