青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

coreBugZJ

此 blog 已棄。

后綴數組

處理字符串的有力武器。。。

理論就不多講了,

我的實現:


  1 // txt[ 0..n ), txt[ 0..n-1 ] > 0, txt[ n ] == 0
  2 
  3 // sa[ 1..n ] = [ 0..n-1 ], sa[ 0 ] = n
  4 
  5 // rk[ 0..n-1 ] = [ 1..n ], rk[ n ] = 0
  6 
  7 
  8 
  9 void Da( const unsigned int * txt, int * pn, int * sa, int * rk, int * ht, int * tot, int totSize ) {
 10 
 11         int *= rk, *= ht, *txy, lastRk = totSize - 1, i, j, len, n;
 12 
 13 
 14 
 15         for( i = 0; i <= lastRk; ++i ){
 16 
 17                 tot[ i ] = 0;
 18 
 19         }
 20 
 21         for( n = 0; txt[ n ]; ++n ){
 22 
 23                 ++tot[ txt[ n ] ];
 24 
 25         }
 26 
 27         ++tot[ txt[ *pn = n ] ];
 28 
 29         for( i = 1; i <= lastRk; ++i ){
 30 
 31                 tot[ i ] += tot[ i - 1 ];
 32 
 33         }
 34 
 35         for( i = n; i >= 0--i ){
 36 
 37                 sa[ --tot[ txt[ i ] ] ] = i;
 38 
 39         }
 40 
 41         x[ sa[ 0 ] ] = lastRk = 0;
 42 
 43         for( i = 1; i <= n; ++i ){
 44 
 45                 if( txt[ sa[ i - 1 ] ] != txt[ sa[ i ] ] ){
 46 
 47                         ++lastRk;
 48 
 49                 }
 50 
 51                 x[ sa[ i ] ] = lastRk;
 52 
 53         }
 54 
 55 
 56 
 57         for( len = 1; lastRk < n; len <<= 1 ){
 58 
 59                 j = -1;
 60 
 61                 for( i = n - len + 1; i <= n; ++i ){
 62 
 63                         y[ ++j ] = i;
 64 
 65                 }
 66 
 67                 for( i = 0; i <= n; ++i ){
 68 
 69                         if( sa[ i ] >= len ){
 70 
 71                                 y[ ++j ] = sa[ i ] - len;
 72 
 73                         }
 74 
 75                 }
 76 
 77 
 78 
 79                 for( i = 0; i <= lastRk; ++i ){
 80 
 81                         tot[ i ] = 0;
 82 
 83                 }
 84 
 85                 for( i = 0; i <= n; ++i ){
 86 
 87                         ++tot[ x[ y[ i ] ] ];
 88 
 89                 }
 90 
 91                 for( i = 1; i <= lastRk; ++i ){
 92 
 93                         tot[ i ] += tot[ i - 1 ];
 94 
 95                 }
 96 
 97                 for( i = n; i >= 0--i ){
 98 
 99                         sa[ --tot[ x[ y[ i ] ] ] ] = y[ i ];
100 
101                 }
102 
103 
104 
105                 txy = x;
106 
107                 x   = y;
108 
109                 y   = txy;
110 
111                 x[ sa[ 0 ] ] = lastRk = 0;
112 
113                 for( i = 1; i <= n; ++i ){
114 
115                         x[ sa[ i ] ] = ( ( y[ sa[ i - 1 ] ] == y[ sa[ i ] ] ) && 
116 
117                                          ( y[ sa[ i - 1 ] + len ] == y[ sa[ i ] + len ] )
118 
119                                        ) ? lastRk : ++lastRk;
120 
121                 }
122 
123         }
124 
125 
126 
127         for( i = 0; i <= n; ++i ){
128 
129                 rk[ i ] = x[ i ];
130 
131         }
132 
133 
134 
135         for( ht[ 0 ] = len = i = 0; i < n; ++i ){
136 
137                 if( len > 0 ){
138 
139                         --len;
140 
141                 }
142 
143                 j = sa[ rk[ i ] - 1 ];
144 
145                 while( txt[ i + len ] == txt[ j + len ] ){
146 
147                         ++len;
148 
149                 }
150 
151                 ht[ rk[ i ] ] = len;
152 
153         }
154 
155         return;
156 
157 }
158 


posted on 2011-03-20 19:12 coreBugZJ 閱讀(1312) 評論(0)  編輯 收藏 引用 所屬分類: Algorithm

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            国产精品区一区| 国产日韩欧美一区二区三区在线观看 | 亚洲精品综合精品自拍| 欧美成人免费播放| 久久久综合香蕉尹人综合网| 国产日韩欧美夫妻视频在线观看| 久久精品99无色码中文字幕| 亚洲欧美日韩国产综合在线 | 欧美色一级片| 亚洲视频在线观看| 亚洲一区二区三区精品在线观看| 国产精品一区二区三区久久久| 欧美一区二区国产| 久久精品毛片| 亚洲乱码国产乱码精品精天堂| 亚洲区中文字幕| 国产精品sm| 久久精品盗摄| 欧美成人精品| 亚洲伊人网站| 久久久久高清| 亚洲视频在线观看三级| 欧美一区二区高清在线观看| 亚洲韩国日本中文字幕| 99国产精品久久久久久久| 国产精品自在在线| 亚洲福利视频专区| 国产精品视频男人的天堂| 欧美大片在线影院| 国产精品久久毛片a| 欧美sm视频| 国产欧美一区二区三区另类精品| 欧美国产日韩免费| 国产欧美日韩免费| 亚洲免费观看高清完整版在线观看熊| 国产欧美日韩91| 亚洲精品一区久久久久久| 国产免费成人av| 亚洲精品在线一区二区| 狠狠色综合色区| 亚洲一区在线免费观看| 亚洲理论电影网| 久久亚洲二区| 欧美一区二区三区四区视频| 欧美久久九九| 欧美激情导航| 国产亚洲精品bt天堂精选| 亚洲麻豆av| 亚洲美女少妇无套啪啪呻吟| 久久精品国产精品亚洲精品| 先锋影音久久久| 欧美日韩视频在线第一区| 亚洲电影在线免费观看| 黄色成人在线网站| 欧美一级视频精品观看| 午夜视频一区在线观看| 欧美日韩另类国产亚洲欧美一级| 欧美 日韩 国产一区二区在线视频| 国产美女扒开尿口久久久| 亚洲视频二区| 亚洲在线不卡| 国产精品久久久久永久免费观看| 亚洲欧洲综合另类在线| 亚洲精品欧美在线| 欧美成人亚洲成人| 欧美电影免费观看高清完整版| 精品av久久707| 久久久国际精品| 玖玖综合伊人| 在线欧美影院| 美日韩精品视频| 亚洲国产精品精华液2区45| 亚洲欧洲精品一区| 欧美国产激情| 亚洲乱码国产乱码精品精98午夜| 99riav国产精品| 欧美视频网址| 一区二区三区高清在线观看| 亚洲一区久久久| 国产精品入口| 久久精品123| 亚洲国产精品成人| 一区二区久久| 国产精品日韩在线观看| 欧美一级日韩一级| 欧美国产激情| 亚洲无限乱码一二三四麻| 国产精品一区毛片| 久久久久国产精品午夜一区| 欧美激情一区二区三区| 一本大道久久a久久综合婷婷| 欧美日韩精品久久久| 中文一区二区| 蜜桃精品一区二区三区| 亚洲美女在线看| 国产精品综合色区在线观看| 久久久一二三| 99视频精品| 毛片av中文字幕一区二区| 99视频在线精品国自产拍免费观看 | 欧美一区二区在线免费观看| 免费成人黄色av| 亚洲午夜精品网| 激情一区二区| 国产精品久久久久aaaa九色| 久久国产福利国产秒拍| 亚洲高清一区二| 久久精品国产一区二区三区| 亚洲激情在线| 国产欧美日韩一区二区三区在线观看| 老司机精品视频网站| 亚洲小少妇裸体bbw| 欧美国产日韩xxxxx| 久久国产精彩视频| 一本色道久久综合亚洲二区三区| 国产中文一区| 国产精品乱子久久久久| 欧美激情一区二区三区高清视频| 亚洲在线视频免费观看| 91久久综合亚洲鲁鲁五月天| 另类专区欧美制服同性| 亚洲免费一在线| 亚洲免费电影在线| 伊人一区二区三区久久精品| 国产欧美成人| 欧美色视频在线| 欧美国产一区视频在线观看| 久久久久www| 欧美一级视频精品观看| 亚洲综合日韩在线| 99精品国产在热久久| 91久久精品美女高潮| 欧美r片在线| 老鸭窝91久久精品色噜噜导演| 欧美在线观看你懂的| 亚洲一区二区在线免费观看| av成人天堂| 99国产精品99久久久久久| 亚洲国产精品久久久久秋霞不卡| 国产一区自拍视频| 国产日韩精品一区二区| 国产欧美1区2区3区| 国产伦精品一区二区三区高清版| 欧美体内she精视频| 欧美亚州一区二区三区| 国产精品乱码人人做人人爱| 欧美午夜精品久久久久免费视| 欧美日韩国产一区二区| 欧美日韩视频免费播放| 欧美日韩在线直播| 国产精品久久久| 国产精品麻豆欧美日韩ww| 国产精品天美传媒入口| 国产精品综合| 狠狠综合久久av一区二区小说 | 欧美日韩裸体免费视频| 欧美日韩国产黄| 欧美日韩专区| 国产乱码精品一区二区三| 国产午夜精品美女视频明星a级| 国产午夜精品理论片a级探花| 国产伪娘ts一区| 在线日韩中文字幕| 亚洲免费观看高清完整版在线观看熊| 99re66热这里只有精品4| 亚洲少妇在线| 久久激情五月婷婷| 欧美福利视频| 日韩一级黄色大片| 亚洲欧美一区二区三区极速播放| 欧美主播一区二区三区| 欧美成年人在线观看| 欧美视频一区二区三区| 国产一区二区三区电影在线观看 | 欧美日韩一区二区欧美激情| 国产精品盗摄久久久| 国产综合色产在线精品| 亚洲精品国产品国语在线app| 亚洲午夜精品网| 狼人天天伊人久久| 亚洲伦伦在线| 久久久久91| 欧美日韩综合| 亚洲高清毛片| 亚洲欧美日韩第一区| 欧美不卡高清| 亚洲一区欧美激情| 欧美jizz19性欧美| 国产伦精品一区二区三区在线观看 | 美日韩精品免费观看视频| 国产精品盗摄一区二区三区| 1204国产成人精品视频| 亚洲欧美成人| 亚洲国产另类久久久精品极度| 亚洲永久精品大片| 欧美日本在线看| 亚洲国产成人不卡| 久久国产精品72免费观看| 99视频一区二区三区| 欧美成人情趣视频|