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

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>
            久久精品日产第一区二区三区| 亚洲欧美精品| 欧美激情第1页| 另类国产ts人妖高潮视频| 久久久久久久欧美精品| 久久久久久久久久久久久久一区| 久久精品国产久精国产爱| 久久精品国产亚洲一区二区| 久久大香伊蕉在人线观看热2| 久久国产精品99久久久久久老狼| 久久九九全国免费精品观看| 免费亚洲视频| 国产精品女人久久久久久| 国产一级揄自揄精品视频| 亚洲第一在线视频| 亚洲色在线视频| 久久精品国产99国产精品| 麻豆av福利av久久av| 亚洲日韩欧美一区二区在线| 亚洲精品小视频在线观看| 一区二区三区视频在线观看 | 国产精品在线看| 国产欧美日韩另类视频免费观看| 国产日韩精品一区二区三区| 在线视频观看日韩| 亚洲一区自拍| 蜜臀av性久久久久蜜臀aⅴ| 亚洲人成网站精品片在线观看 | 久久精品在线| 性伦欧美刺激片在线观看| 亚洲在线一区二区| 久久综合图片| 国产伦精品一区二区三区高清| 在线观看欧美精品| 亚洲欧美日韩在线播放| 欧美黄色片免费观看| 亚洲免费网站| 欧美色区777第一页| 在线成人av网站| 亚久久调教视频| 91久久精品国产| 久久精品国产99国产精品澳门| 欧美日韩午夜在线| 亚洲精品精选| 欧美成人在线影院| 久久久久国色av免费看影院| 国产精品视频精品视频| 这里是久久伊人| 亚洲第一天堂av| 久久成人在线| 国产精品性做久久久久久| 日韩一区二区精品在线观看| 久久九九热免费视频| 亚洲一级一区| 国产精品国产三级国产专播精品人 | 欧美日韩在线电影| 日韩亚洲在线观看| 亚洲国产裸拍裸体视频在线观看乱了中文 | 国产精品久久久久久久久免费| 亚洲精品乱码久久久久久黑人| 久久资源在线| 久久久国产精品一区二区三区| 国产视频一区二区三区在线观看| 欧美精品九九99久久| 欧美大片91| 亚洲国产美女久久久久| 午夜精品av| 噜噜噜91成人网| 欧美一二三视频| 国产欧美在线观看一区| 久久精品国产第一区二区三区最新章节 | 亚洲一区二区三区免费视频| 欧美午夜免费影院| 欧美一区二区久久久| 亚洲欧美日本日韩| 国内精品久久久久影院优| 久久女同精品一区二区| 久久亚洲精品一区二区| 亚洲每日在线| 一区二区三区久久网| 国产精品久久亚洲7777| 久久久精品日韩| 免费亚洲电影在线| 宅男精品视频| 欧美亚洲自偷自偷| 亚洲国产影院| 亚洲一二三区在线| 国产亚洲在线观看| 欧美国产视频在线| 欧美视频导航| 老司机精品久久| 欧美日本中文字幕| 久久成人在线| 欧美高清不卡在线| 欧美影院在线播放| 欧美成人性生活| 欧美在线免费观看亚洲| 久久中文在线| 亚洲欧美日韩另类| 免费观看成人鲁鲁鲁鲁鲁视频| 亚洲图片在区色| 久久蜜桃香蕉精品一区二区三区| 99视频在线观看一区三区| 香蕉av福利精品导航| 亚洲欧洲一区二区在线播放| 亚洲一级一区| 99ri日韩精品视频| 久久久噜噜噜久久久| 午夜一区二区三区在线观看| 麻豆freexxxx性91精品| 欧美影院久久久| 欧美日韩一区二区三区在线视频| 老司机午夜精品视频| 国产精品日韩欧美一区二区三区| 欧美电影在线播放| 国产日本欧美在线观看 | 亚洲天堂成人在线观看| 欧美在线视频a| 亚洲一区欧美二区| 麻豆乱码国产一区二区三区| 午夜精品区一区二区三| 亚洲欧美日韩成人高清在线一区| 欧美大片一区| 久久久噜噜噜久久中文字免| 欧美三级午夜理伦三级中视频| 久久影视三级福利片| 国产精品视频一区二区高潮| 最近中文字幕日韩精品| 一区二区三区在线免费观看| 亚洲欧美日韩直播| 亚洲欧美日韩在线| 欧美三级电影一区| 亚洲三级免费观看| 亚洲精品一区在线观看| 欧美成人69av| 亚洲二区视频| 亚洲国产岛国毛片在线| 久久九九免费| 免费日韩一区二区| 亚洲国产精彩中文乱码av在线播放| 久久超碰97中文字幕| 久久人人97超碰人人澡爱香蕉| 国产一区99| 久久久亚洲人| 亚洲电影成人| 艳妇臀荡乳欲伦亚洲一区| 欧美jizzhd精品欧美喷水 | 亚洲麻豆国产自偷在线| 男女av一区三区二区色多| 欧美激情a∨在线视频播放| 亚洲精品护士| 欧美日韩亚洲一区二区三区| 日韩亚洲成人av在线| 亚洲男女自偷自拍图片另类| 国产欧美精品一区二区色综合| 欧美在线视频日韩| 欧美福利网址| 在线一区二区三区做爰视频网站| 欧美日韩精品不卡| 亚洲一区二三| 久久久99爱| 亚洲狠狠丁香婷婷综合久久久| 欧美激情在线狂野欧美精品| 一区二区欧美国产| 久久久www| 亚洲日本理论电影| 国产精品成人va在线观看| 久久av最新网址| 亚洲欧洲精品一区二区三区| 亚洲在线视频一区| 激情成人av在线| 久久精品一区二区| 亚洲欧美一区二区三区久久| 国产目拍亚洲精品99久久精品 | 亚洲精品韩国| 欧美制服丝袜第一页| 影音先锋久久久| 欧美丝袜第一区| 美脚丝袜一区二区三区在线观看 | 欧美一区二区性| 在线精品一区| 一区二区三区成人精品| 久久国产一区| 亚洲美女av在线播放| 国产精品三级久久久久久电影| 久久久久久久欧美精品| 一级成人国产| 亚洲狠狠丁香婷婷综合久久久| 欧美亚洲专区| 亚洲美女毛片| 激情婷婷久久| 国产伦精品免费视频| 欧美女人交a| 久久综合色综合88| 欧美综合77777色婷婷| 一本大道av伊人久久综合| 欧美v国产在线一区二区三区| 午夜免费日韩视频| 亚洲在线视频观看| 一区二区三区不卡视频在线观看 |