锘??xml version="1.0" encoding="utf-8" standalone="yes"?>狠狠色丁香婷婷综合,国内久久婷婷综合,国产精品视频http://www.shnenglu.com/ACflying/KNIGHTzh-cnWed, 24 Sep 2025 07:15:20 GMTWed, 24 Sep 2025 07:15:20 GMT60poj 3648 Weddinghttp://www.shnenglu.com/ACflying/archive/2009/06/07/86997.htmlKNIGHTKNIGHTSun, 07 Jun 2009 09:19:00 GMThttp://www.shnenglu.com/ACflying/archive/2009/06/07/86997.htmlhttp://www.shnenglu.com/ACflying/comments/86997.htmlhttp://www.shnenglu.com/ACflying/archive/2009/06/07/86997.html#Feedback3http://www.shnenglu.com/ACflying/comments/commentRss/86997.htmlhttp://www.shnenglu.com/ACflying/services/trackbacks/86997.htmlWedding
Time Limit: 1000MS Memory Limit: 65536K
Total Submissions: 821 Accepted: 249 Special Judge

Description

Up to thirty couples will attend a wedding feast, at which they will be seated on either side of a long table. The bride and groom sit at one end, opposite each other, and the bride wears an elaborate headdress that keeps her from seeing people on the same side as her. It is considered bad luck to have a husband and wife seated on the same side of the table. Additionally, there are several pairs of people conducting adulterous relationships (both different-sex and same-sex relationships are possible), and it is bad luck for the bride to see both members of such a pair. Your job is to arrange people at the table so as to avoid any bad luck.

Input

The input consists of a number of test cases, followed by a line containing 0 0. Each test case gives n, the number of couples, followed by the number of adulterous pairs, followed by the pairs, in the form "4h 2w" (husband from couple 4, wife from couple 2), or "10w 4w", or "3h 1h". Couples are numbered from 0 to n - 1 with the bride and groom being 0w and 0h.

Output

For each case, output a single line containing a list of the people that should be seated on the same side as the bride. If there are several solutions, any one will do. If there is no solution, output a line containing "bad luck".

Sample Input

10 6
3h 7h
5w 3w
7h 6w
8w 3w
7h 3w
2w 5h
0 0

Sample Output

1h 2h 3w 4h 5h 6h 7h 8h 9h

Source

Waterloo Local Contest, 2007.9.29
銆傘傘傘傘傘傘傘傘傘傘傘傘傘傘傘傘傘傘傘?br />閮侀椃銆傘傘傘傘傘傘傘傘傘傘傘傘傘傘傘傘傘?br />鎼炵殑涓涓嬪崍銆傘傘傘傘傘傘傘傘傘傘傘傘傘傘傞敊浜哊嬈°傘傘傘?br />棰樼洰寰圵S鏈鍚庝粠璇諱竴閬嶃傘傘傘傘傘傘傘傘傜粓浜庤鎳傘傘傘傘傘?br />楗挎鎴戜簡銆傘傘傘傘傘傘傘傘傘傘傘傘傘傝繕涓嶄細鏋勫浘銆傘傘傘傘傘?br />鍏堝悆楗紝鍥炴潵鍦ㄦ悶銆傘傘傘傘傘傘傦紝浠婂ぉ灝辮繖5閬撻榪樺洶闅句簡銆傘傘傞儊闂楓?br />--------------------------------------------------------------------------------------------------------------------------------------------------------------
2009.6.8聽 22:34聽聽
浠g爜寰堜笐涓嶈創浜嗭紝鍐嶆湁6鍒嗛挓灝辯唲鐏簡銆傘傘傘傘傝漢涓嬫兂浜嗕竴浼氭劅瑙変竴璧鋒濊礬鏄鐨勫氨鏄病鏈夎冭檻0w-銆?h鐨勮繖鏉¤竟銆傘傘傘?br />緇撴灉涓鏀逛箣銆傘傘傘傘傘傘傘傘傘侫C聽聽
5281113xujiaming3648Accepted364K0MSC++2635B2009-06-08 22:33:58聽聽聽聽

2009-06-08 22:33:58 AC鏃墮棿聽 AC瀹屼簡涔嬪悗璇翠簡涓や釜瀛椻滄垜鏃モ濊楄垂浜嗕袱縐掗挓銆傜劧鍚庣洿鎺ユ墦寮Blog銆備粖鏅氱粓浜庢悶鍑烘潵浜?
鎰熻阿鎸囧嚭Bug鐨勫ぇ鐗涖?br />鍟婏紝鑷範浜嗐併併併併併併併併併併併併併併併併併併併併併併併併併併併併併併併併併併併?br />

KNIGHT 2009-06-07 17:19 鍙戣〃璇勮
]]>
poj 3678 Priest John's Busiest Dayhttp://www.shnenglu.com/ACflying/archive/2009/06/07/86966.htmlKNIGHTKNIGHTSun, 07 Jun 2009 02:39:00 GMThttp://www.shnenglu.com/ACflying/archive/2009/06/07/86966.htmlhttp://www.shnenglu.com/ACflying/comments/86966.htmlhttp://www.shnenglu.com/ACflying/archive/2009/06/07/86966.html#Feedback0http://www.shnenglu.com/ACflying/comments/commentRss/86966.htmlhttp://www.shnenglu.com/ACflying/services/trackbacks/86966.html寮濮嬬殑鏃跺欐湰浠ヤ負涓嶇敤鎷撴墤錛岃屽湪瑙佸浘鐨勬椂鍊欏叏閮ㄥ緩鎴愭棤鍚戝浘銆傘傘傘傜粨鏋滀笉璦鑰屽柣
閮ㄥ垎浠g爜濡備笅錛?br />
#include<iostream>
#include
<stack>
#include
<vector>
#define聽MAXN聽2100
usingnamespace聽std;
vector
<int>v[MAXN],nv[MAXN],cont[MAXN];
int聽pre[MAXN],low[MAXN],id[MAXN];
int聽ans[MAXN],dfn[MAXN];
int聽cnt,scnt,n,m,N;
stack
<int>ST;
struct聽NODE{
聽聽聽聽
int聽x,y;聽聽聽聽
}
arr[MAXN];
void聽Tarjan(int聽x){
聽聽聽聽
int聽t,i;
聽聽聽聽
int聽min=low[x]=pre[x]=cnt++;
聽聽聽聽ST.push(x);
聽聽聽聽
for(i=0;i<v[x].size();i++){
聽聽聽聽聽聽聽聽t
=v[x][i];
聽聽聽聽聽聽聽聽
if(pre[t]==-1)Tarjan(t);
聽聽聽聽聽聽聽聽
if(low[t]<min)min=low[t];
聽聽聽聽}

聽聽聽聽
if(min<low[x]){
聽聽聽聽聽聽聽聽low[x]
=min;
聽聽聽聽聽聽聽聽
return;
聽聽聽聽}

聽聽聽聽
do{
聽聽聽聽聽聽聽聽id[t
=ST.top()]=scnt;
聽聽聽聽聽聽聽聽low[t]
=m;ST.pop();
聽聽聽聽}
while(t!=x);
聽聽聽聽scnt
++;
}

int聽SCC(){
聽聽聽聽scnt
=cnt=0;
聽聽聽聽
while(!ST.empty())ST.pop();
聽聽聽聽memset(pre,
0xff,sizeof(pre));
聽聽聽聽memset(low,
0,sizeof(low));
聽聽聽聽
for(int聽i=0;i<m;i++)
聽聽聽聽聽聽聽聽
if(pre[i]==-1)Tarjan(i);
聽聽聽聽
for(int聽i=0;i<m;i++)
聽聽聽聽聽聽聽聽cont[id[i]].push_back(i);
聽聽聽聽
return聽scnt;
}

void聽DFS(int聽k){
聽聽聽聽dfn[k]
=cnt++;
聽聽聽聽
for(int聽i=0;i<nv[k].size();i++){
聽聽聽聽聽聽聽聽
int聽w=nv[k][i];
聽聽聽聽聽聽聽聽
if(dfn[w]==-1)DFS(w);聽
聽聽聽聽}
聽聽
聽聽聽聽ans[scnt
++]=k;聽聽聽聽聽聽聽聽聽聽聽聽聽
}

void聽ColDFS(int聽k){
聽聽聽聽dfn[k]
=2;
聽聽聽聽
for(int聽i=0;i<nv[k].size();i++){
聽聽聽聽聽聽聽聽
int聽w=nv[k][i];
聽聽聽聽聽聽聽聽
if(dfn[w]==-1)ColDFS(w);
聽聽聽聽}
聽聽聽聽聽聽聽聽聽聽
}

void聽GetOneAnswer(){
聽聽聽聽memset(dfn,
0xff,sizeof(dfn));
聽聽聽聽
for(int聽i=0;i<m;i++)
聽聽聽聽聽聽聽聽
for(int聽j=0;j<v[i].size();j++){
聽聽聽聽聽聽聽聽聽聽聽聽
int聽x=id[i],y=id[v[i][j]];
聽聽聽聽聽聽聽聽聽聽聽聽
if(x!=y)nv[x].push_back(y);聽聽聽聽
聽聽聽聽聽聽聽聽}

聽聽聽聽cnt
=scnt=0;
聽聽聽聽
for(int聽i=0;i<N;i++)
聽聽聽聽聽聽聽聽
if(dfn[i]==-1)DFS(i);
聽聽聽聽memset(dfn,
0xff,sizeof(dfn));
聽聽聽聽
for(int聽i=scnt-1;i>=0;i--)
聽聽聽聽聽聽聽聽
if(dfn[ans[i]]==-1)聽{
聽聽聽聽聽聽聽聽聽聽聽聽
int聽a=cont[ans[i]][0],b;聽
聽聽聽聽聽聽聽聽聽聽聽聽
if(a<n)b=a+n;
聽聽聽聽聽聽聽聽聽聽聽聽
else聽b=a-n;
聽聽聽聽聽聽聽聽聽聽聽聽dfn[ans[i]]
=1;
聽聽聽聽聽聽聽聽聽聽聽聽
if聽(dfn[id[b]]==-1)ColDFS(id[b]);聽
聽聽聽聽聽聽聽聽}

}

void聽PRINTF(){
聽聽聽聽printf(
"YES\n");
聽聽聽聽GetOneAnswer();
聽聽聽聽
for(int聽i=0;i<n;i++){
聽聽聽聽聽聽聽聽
int聽x=arr[i].x,y=arr[i].y;
聽聽聽聽聽聽聽聽
int聽tx=arr[i+n].x,ty=arr[i+n].y;
聽聽聽聽聽聽聽聽
if(dfn[id[i]]==2)printf("%02d:%02d聽%02d:%02d\n",x/60,x%60,y/60,y%60);
聽聽聽聽聽聽聽聽
else聽printf("%02d:%02d聽%02d:%02d\n",tx/60,tx%60,ty/60,ty%60);
聽聽聽聽}
聽聽聽聽
}

void聽solve(){
聽聽聽聽
int聽i=0;
聽聽聽聽
for(N=SCC();i<n;i++)
聽聽聽聽聽聽聽聽
if(id[i]==id[n+i])break;
聽聽聽聽
if(i==n)PRINTF();
聽聽聽聽
else聽printf("NO\n");聽聽聽聽
}


KNIGHT 2009-06-07 10:39 鍙戣〃璇勮
]]>
poj 3207 Ikki's Story IV - Panda's Trickhttp://www.shnenglu.com/ACflying/archive/2009/06/06/86939.htmlKNIGHTKNIGHTSat, 06 Jun 2009 12:12:00 GMThttp://www.shnenglu.com/ACflying/archive/2009/06/06/86939.htmlhttp://www.shnenglu.com/ACflying/comments/86939.htmlhttp://www.shnenglu.com/ACflying/archive/2009/06/06/86939.html#Feedback0http://www.shnenglu.com/ACflying/comments/commentRss/86939.htmlhttp://www.shnenglu.com/ACflying/services/trackbacks/86939.html緇撴灉浠庤涔嬪悗鍙堝洜涓虹晫闄怶a浜嗕竴嬈°傘傘傘傛檿
47ms姣旇緝鎱紝鍙兘鏄嬌鐢ㄤ簡STL鐨剉ector鍜宻tack鐨勫師鍥犲惂
閮ㄥ垎浠g爜濡備笅
#include<iostream>
#include
<stack>
#include
<vector>
#define聽MAXN聽1200
usingnamespace聽std;
int聽pre[MAXN],low[MAXN],id[MAXN];
int聽cnt,scnt,n,N,M;
vector
<int>v[MAXN];
stack
<int>ST;
struct聽NODE{
聽聽聽聽
int聽x,y;聽聽聽聽
}
arr[MAXN];
void聽Tarjan(int聽x){
聽聽聽聽
int聽t,i;
聽聽聽聽
int聽min=low[x]=pre[x]=cnt++;
聽聽聽聽ST.push(x);
聽聽聽聽
for(i=0;i<v[x].size();i++){
聽聽聽聽聽聽聽聽t
=v[x][i];
聽聽聽聽聽聽聽聽
if(pre[t]==-1)Tarjan(t);
聽聽聽聽聽聽聽聽
if(low[t]<min)min=low[t];
聽聽聽聽}

聽聽聽聽
if(min<low[x]){
聽聽聽聽聽聽聽聽low[x]
=min;
聽聽聽聽聽聽聽聽
return;
聽聽聽聽}

聽聽聽聽
do{
聽聽聽聽聽聽聽聽id[t
=ST.top()]=scnt;
聽聽聽聽聽聽聽聽low[t]
=n;ST.pop();
聽聽聽聽}
while(t!=x);
聽聽聽聽scnt
++;
}

int聽SCC(){
聽聽聽聽scnt
=cnt=0;
聽聽聽聽memset(pre,
0xff,sizeof(pre));
聽聽聽聽memset(low,
0,sizeof(low));
聽聽聽聽
for(int聽i=0;i<n;i++)
聽聽聽聽聽聽聽聽
if(pre[i]==-1)Tarjan(i);
聽聽聽聽
return聽scnt;
}


KNIGHT 2009-06-06 20:12 鍙戣〃璇勮
]]>
嫻呰皥2鈥擲AT闂http://www.shnenglu.com/ACflying/archive/2009/06/06/86912.htmlKNIGHTKNIGHTSat, 06 Jun 2009 07:00:00 GMThttp://www.shnenglu.com/ACflying/archive/2009/06/06/86912.htmlhttp://www.shnenglu.com/ACflying/comments/86912.htmlhttp://www.shnenglu.com/ACflying/archive/2009/06/06/86912.html#Feedback0http://www.shnenglu.com/ACflying/comments/commentRss/86912.htmlhttp://www.shnenglu.com/ACflying/services/trackbacks/86912.html 2-SAT錛?/strong>

1 2 - SAT灝辨槸2鍒ゅ畾鎬ч棶棰橈紝鏄竴縐嶇壒孌婄殑閫昏緫鍒ゅ畾闂銆?br /> 2 2 - SAT闂鏈変綍鐗規畩鎬э紵璇ュ浣曟眰瑙o紵
3 鎴戜滑浠庝竴閬撲緥棰樻潵璁よ瘑2 - SAT闂錛屽茍鎻愬嚭瀵逛竴綾? - SAT闂閫氱敤鐨勮В娉曘?br /> 4
Poi聽 0106 聽Peaceful聽Commission聽[鍜屽鉤濮斿憳浼歖錛?br />
鏌愬浗鏈塶涓厷媧撅紝姣忎釜鍏氭淳鍦ㄨ浼氫腑鎭版湁2涓唬琛ㄣ?br />鐜板湪瑕佹垚绔嬪拰騫沖鍛樹細聽錛岃浼氭弧瓚籌細
姣忎釜鍏氭淳鍦ㄥ拰騫沖鍛樹細涓湁涓斿彧鏈変竴涓唬琛?br />濡傛灉鏌愪袱涓唬琛ㄤ笉鍜岋紝鍒欎粬浠笉鑳介兘灞炰簬濮斿憳浼毬?br />浠h〃鐨勭紪鍙蜂粠1鍒?n錛岀紪鍙蜂負2a
- 1 銆?a鐨勪唬琛ㄥ睘浜庣a涓厷媧?br />
杈撳叆n錛堝厷媧炬暟錛夛紝m錛堜笉鍙嬪ソ瀵規暟錛夊強m瀵逛袱涓や笉鍜岀殑浠h〃緙栧彿聽
鍏朵腑1鈮鈮?/span> 8000 錛?/span> 0 鈮聽鈮?/span> 20000

姹傚拰騫沖鍛樹細鏄惁鑳藉垱绔嬨傝嫢鑳斤紝姹備竴縐嶆瀯鎴愭柟寮忋偮?br />杈撳叆錛毬犅犅犅犅犺緭鍑猴細
3 2 聽聽聽聽聽聽聽 1 聽聽聽聽聽聽聽聽
1 3 聽聽聽聽聽聽聽 4 聽聽聽聽聽聽聽聽聽聽
2 4 聽聽聽聽聽聽聽 5 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽

鍘熼鍙弿榪頒負錛?br />
鏈塶涓粍錛岀i涓粍閲屾湁涓や釜鑺傜偣Ai,聽Ai
' 聽銆傞渶瑕佷粠姣忎釜緇勪腑閫夊嚭涓涓傝屾煇浜涚偣涓嶅彲浠ュ悓鏃墮夊嚭錛堢О涔嬩負涓嶇浉瀹癸級銆備換鍔℃槸淇濊瘉閫夊嚭鐨刵涓偣閮借兘涓や袱鐩稿銆?/span>

錛堝湪榪欓噷鎶夾i,聽Ai
' 聽鐨勫畾涔夌◢紼嶆斁瀹戒竴浜涳紝瀹冧滑鍚屾椂琛ㄧず灞炰簬鍚屼竴涓粍鐨勪袱涓妭鐐廣備篃灝辨槸璇達紝濡傛灉鎴戜滑鎻忚堪Ai錛岄偅涔堟弿榪拌繖涓粍鐨勫彟涓涓妭鐐瑰氨鍙互鐢ˋi ' 錛?br />
鍒濇鏋勫浘
濡傛灉Ai涓嶢j涓嶇浉瀹癸紝閭d箞濡傛灉閫夋嫨浜咥i錛屽繀欏婚夋嫨Aj鈥樎狅紱鍚屾牱錛屽鏋滈夋嫨浜咥j錛屽氨蹇呴』閫夋嫨Ai鈥櫬犮?br />聽聽聽Ai聽聽聽聽聽聽聽聽聽聽聽聽聽Aj
'
聽聽聽Aj聽聽聽聽聽聽聽聽聽聽聽聽聽Ai鈥樎犅犅犅犅犅犅犅犅犅犅犅犅犅犅犅犅犅犅犅犅犅犅犅?br />榪欐牱鐨勪袱鏉¤竟瀵圭О

鎴戜滑浠庝竴涓緥瀛愭潵鐪嬶細
鍋囪4涓粍錛屼笉鍜岀殑浠h〃涓猴細1鍜?錛?鍜?錛?鍜?錛岄偅涔堟瀯鍥撅細
鍋囪錛氶鍏堥?聽3蹇呴』閫夛紝2涓嶅彲閫壜?蹇呴』閫夛紝
4 銆?涓嶅彲閫壜?/span> 5 銆?鍙互浠婚変竴涓?br />

鐭涚浘鐨勬儏鍐典負錛?br />瀛樺湪Ai錛屼嬌寰桝i鏃㈠繀欏昏閫夊張涓嶅彲閫夈?br />
寰楀埌綆楁硶1錛?br />鏋氫婦姣忎竴瀵瑰皻鏈‘瀹氱殑Ai,聽Ai鈥樎狅紝浠婚?涓紝鎺ㄥ鍑虹浉鍏崇殑緇勶紝鑻ヤ笉鐭涚浘錛屽垯鍙夋嫨錛涘惁鍒欓夊彟1涓紝鍚屾牱鎺ㄥ銆傝嫢鐭涚浘錛岄棶棰樺繀瀹氭棤瑙c?br />姝ょ畻娉曟紜х畝瑕佽鏄庯細
鐢變簬Ai,Ai
' 聽閮芥槸灝氭湭紜畾鐨勶紝瀹冧滑涓嶄笌涔嬪墠鐨勭粍鐩稿叧鑱旓紝鍓嶉潰鐨勯夋嫨涓嶄細褰卞搷Ai,聽Ai ' 聽銆?br />
綆楁硶鐨勬椂闂村鏉傚害鍦ㄦ渶鍧忕殑鎯呭喌涓嬩負O(nm)銆?br />鍦ㄨ繖涓畻娉曚腑錛屽茍娌℃湁寰堝ソ鐨勫埄鐢ㄥ浘涓竟鐨勫縐版?br />
鏇翠竴鑸殑璇達細
鍦ㄦ瘡涓竴涓幆閲岋紝浠繪剰涓涓偣鐨勯夋嫨浠h〃灝嗚閫夋嫨姝ょ幆閲岀殑姣忎竴涓偣銆備笉濡ㄦ妸鐜敹緙╂垚涓涓瓙鑺傜偣錛堣瀹氳繖鏍風殑鐜槸鏋佸ぇ寮鴻繛閫氬瓙鍥撅級銆傛柊鑺傜偣鐨勯夋嫨琛ㄧず閫夋嫨榪欎釜鑺傜偣鎵瀵瑰簲鐨勭幆涓殑姣忎竴涓妭鐐?
瀵逛簬鍘熷浘涓殑姣忔潯杈笰i
-> Aj錛堣Ai灞炰簬鐜疭i錛孉j灞炰簬鐜疭j錛夊鏋淪i鈮燬j錛屽垯鍦ㄦ柊鍥句腑榪炶竟:Si -> Sj

榪欐牱鏋勯犲嚭涓涓柊鐨勬湁鍚戞棤鐜浘銆?br />姝ゅ浘涓庡師鍥劇瓑浠楓?br />
閫氳繃姹傚己榪為氬垎閲忥紝鍙互鎶婂浘杞崲鎴愭柊鐨勬湁鍚戞棤鐜浘錛屽湪榪欎釜鍩虹涓婏紝浠嬬粛涓涓柊鐨勭畻娉曘?br />
鏂扮畻娉曚腑錛屽鏋滃瓨鍦ㄤ竴瀵笰i,聽Ai
' 灞炰簬鍚屼竴涓幆錛屽垯鍒ゆ棤瑙o紝鍚﹀垯灝嗛噰鐢ㄦ嫇鎵戞帓搴忥紝浠ヨ嚜搴曞悜涓婄殑欏哄簭榪涜鎺ㄥ錛屼竴瀹氳兘鎵懼埌鍙瑙c?/span>

鑷充簬榪欎釜綆楁硶鐨勫緱鏉ュ強姝g‘鎬э紝灝嗗湪涓嬩竴孌墊枃瀛椾腑榪涜璇︾粏鍒嗘瀽銆?br />
鍥炲繂鏋勫浘鐨勮繃紼嬶細
瀵逛簬涓や釜涓嶇浉瀹圭殑鐐孤燗i,聽Aj錛屾瀯鍥炬柟寮忎負錛欰i
-> Aj ' ,Aj->Ai ' ,鍓嶉潰鎻愬埌榪囷紝榪欐牱鐨勪袱鏉¤竟瀵圭О錛屼篃灝辨槸璇達細
濡傛灉瀛樺湪Ai
-> Aj錛屽繀瀹氬瓨鍦ˋj ' ->Ai ' 銆?br />
絳変環浜庯細Ai
-> Ak,Ak ' ->Ai ' 聽鏂逛究璧瘋錛屼箣鍚庘?/span> -> 鈥濅唬琛ㄨ繖鏍蜂竴縐嶄紶閫掑叧緋?


鐚滄祴1錛氬浘涓殑鐜垎鍒縐?br />濡傛灉瀛樺湪Ai,Aj錛孉i,Aj灞炰簬鍚屼竴涓幆(璁頒綔Si),閭d箞Ai ' ,聽Aj ' 涔熷繀瀹氬睘浜庝竴涓幆(璁頒綔Si ' ).
鍐嶆牴鎹墠闈㈢殑寮曠悊錛屼笉闅炬帹鏂嚭姣忎釜鐜垎鍒縐般偮?br />
璇佹槑鏂瑰紡涓庡紩鐞嗙浉綾諱技
涓涓◢紼嶅鏉傜偣鐨勭粨鏋?鍏朵腑綰€佽摑鑹查儴鍒嗗垎鍒負涓ょ粍瀵圭О鐨勯摼緇撴瀯
鎺ㄥ箍2錛氬浜庝換鎰忎竴瀵筍i,聽Si
' 聽錛孲i鐨勫悗浠h妭鐐逛笌Si ' 聽鐨勫墠浠h妭鐐圭浉浜掑縐般偮?br />緇ц屾彁鍑?
鐚滄祴2錛氳嫢闂鏃犺В錛屽垯蹇呯劧瀛樺湪Ai,聽Ai
' 聽錛屼嬌寰桝i,Ai ' 灞炰簬鍚屼竴涓幆銆備篃灝辨槸錛屽鏋滄瘡涓瀵笰i,Ai ' 聽閮戒笉灞炰簬鍚屼竴涓幆錛岄棶棰樺繀瀹氭湁瑙c備笅闈㈢粰鍑虹畝鐣ヨ瘉鏄庯細
鍏堟彁鍑轟竴涓窡綆楁硶1鐩鎬技鐨勬楠わ細聽
濡傛灉閫夋嫨Si錛岄偅涔堝浜庢墍鏈塖i
-> Sj錛孲j閮藉繀欏昏閫夋嫨銆偮?br />鑰孲i ' 聽蹇呭畾涓嶅彲閫夛紝榪欐牱Si鈥欑殑鎵鏈夊墠浠h妭鐐逛篃蹇呭畾涓嶅彲閫夛紙灝嗚繖涓榪囩▼縐頒箣涓哄垹闄わ級銆?/span>
鐢辨帹騫?鍙互寰楀埌錛岃繖鏍風殑鍒犻櫎涓嶄細瀵艱嚧鐭涚浘銆?br />
鍋囪閫夋嫨S3
'
飪犻夋嫨S3 ' 鐨勫悗浠h妭鐐?聽S1 '
飪犲垹闄3
飪犲垹闄3鐨勫墠浠h妭鐐筍1
S1涓嶴1
' 鏄縐扮殑

姣忔鎵懼埌涓涓湭琚‘瀹氱殑Si錛屼嬌寰椾笉瀛樺湪Si
-> Si ' 聽閫夋嫨Si鍙婂叾鍚庝唬鑺傜偣鑰屽垹闄i鈥欏強Si鈥樼殑鍓嶄唬鑺傜偣銆備竴瀹氬彲浠ユ瀯閫犲嚭涓緇勫彲琛岃В銆?/span>
鍥犳鐚滄祴2鎴愮珛銆?br />
鍙﹀錛岃嫢姣忔鐩茬洰鐨勫幓鎵句竴涓湭琚‘瀹氱殑Si錛屾椂闂村鏉傚害鐩稿綋楂樸?br />浠ヨ嚜搴曞悜涓婄殑欏哄簭榪涜閫夋嫨銆佸垹闄わ紝榪欐牱榪樺彲浠ュ厤鍘燴滈夋嫨Si鐨勫悗浠h妭鐐光濊繖涓姝ャ?br />鐢ㄦ嫇鎵戞帓搴忓疄鐜拌嚜搴曞悜涓婄殑欏哄簭銆?br />
涓緇勫彲鑳界殑鎷撴墤搴忓垪(鑷簳鍚戜笂錛?S1
' ,S2,S2 ' ,S3 ' ,S3,S1

綆楁硶2鐨勬祦紼嬶細聽

1 錛庢瀯鍥?br /> 2 錛庢眰鍥劇殑鏋佸ぇ寮鴻繛閫氬瓙鍥?br /> 3 錛庢妸姣忎釜瀛愬浘鏀剁緝鎴愬崟涓妭鐐癸紝鏍規嵁鍘熷浘鍏崇郴鏋勯犱竴涓湁鍚戞棤鐜浘
4 錛庡垽鏂槸鍚︽湁瑙o紝鏃犺В鍒欒緭鍑猴紙閫鍑猴級
5 錛庡鏂板浘榪涜鎷撴墤鎺掑簭
6 錛庤嚜搴曞悜涓婅繘琛岄夋嫨銆佸垹闄?br /> 7 錛庤緭鍑?br />
灝忕粨錛?br />鏁翠釜綆楁硶鐨勬椂闂村鏉傚害澶ф鏄疧(m)錛岃В鍐蟲闂鍙互璇存槸鐩稿綋鏈夋晥浜嗐?br />鍦ㄦ暣涓畻娉曠殑鏋勯犮佽瘉鏄庝腑鍙嶅鎻愬埌浜嗕竴涓瘝錛氬縐般傚彂鐜般佸埄鐢ㄤ簡榪欎釜鍥劇殑鐗規畩鎬ц川錛屾垜浠墠鑳藉寰堝ソ鐨勮В鍐抽棶棰樸?br />騫朵笖錛岀敱2
- SAT闂妯″瀷鍙樻崲鍑虹殑綾諱技鐨勯鐩兘鍙互鐢ㄤ笂榪版柟娉曡В鍐熾偮?br />
鍏ㄦ枃鎬葷粨錛?br />鍏呭垎鎸栨帢鍥劇殑鎬ц川錛岃兘澶熸洿濂界殑瑙e喅闂銆?br />涓嶄粎浠呮槸瀵逛簬鍥捐錛岃繖縐嶆濇兂鍙互鍦ㄥ緢澶氶棶棰樹腑寰楀埌寰堝ソ鐨勫簲鐢ㄣ?br />甯屾湜鎴戜滑鑳芥帉鎻℃縐嶈В棰樼殑鎬濇兂錛屽湪鐔熺粌鍩虹綆楁硶鐨勫悓鏃舵繁鍏ュ垎鏋愩佺伒媧昏繍鐢ㄣ佸ぇ鑳嗗垱鏂幫紝浠庤岃В鍐蟲洿澶氭洿鏂扮殑闅鵑銆?br />


KNIGHT 2009-06-06 15:00 鍙戣〃璇勮
]]>
鍐沖畾鑰冪爺銆傘傘?/title><link>http://www.shnenglu.com/ACflying/archive/2009/05/31/86315.html</link><dc:creator>KNIGHT</dc:creator><author>KNIGHT</author><pubDate>Sun, 31 May 2009 13:44:00 GMT</pubDate><guid>http://www.shnenglu.com/ACflying/archive/2009/05/31/86315.html</guid><wfw:comment>http://www.shnenglu.com/ACflying/comments/86315.html</wfw:comment><comments>http://www.shnenglu.com/ACflying/archive/2009/05/31/86315.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/ACflying/comments/commentRss/86315.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/ACflying/services/trackbacks/86315.html</trackback:ping><description><![CDATA[寮濮嬩範鎯嚜涔犲鐢熸椿銆傚敖閲忓皯Coding銆?br />浠庢涓鑺傝涓嶉冦傘傘傘傘傚懆鍏紝鍛ㄦ棩鍘?73.鎴栬呯湅璧勬枡銆傘傘?br />Bless pip!<img src ="http://www.shnenglu.com/ACflying/aggbug/86315.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/ACflying/" target="_blank">KNIGHT</a> 2009-05-31 21:44 <a href="http://www.shnenglu.com/ACflying/archive/2009/05/31/86315.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鍐欑偣澶存枃浠朵箣綾?/title><link>http://www.shnenglu.com/ACflying/archive/2009/05/29/86120.html</link><dc:creator>KNIGHT</dc:creator><author>KNIGHT</author><pubDate>Fri, 29 May 2009 14:14:00 GMT</pubDate><guid>http://www.shnenglu.com/ACflying/archive/2009/05/29/86120.html</guid><wfw:comment>http://www.shnenglu.com/ACflying/comments/86120.html</wfw:comment><comments>http://www.shnenglu.com/ACflying/archive/2009/05/29/86120.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/ACflying/comments/commentRss/86120.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/ACflying/services/trackbacks/86120.html</trackback:ping><description><![CDATA[涔熷仛涓皬灝忕殑搴旂敤錛屽仛TC鐨勬椂鍊欑渷浜嗚澶氫唬鐮佹椂闂?br /><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #0000ff">#define</span><span style="COLOR: #000000">聽MFW()聽freopen("MyData.out","w",stdout);</span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">#define</span><span style="COLOR: #000000">聽FW()聽freopen("Data.out","w",stdout);</span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">#define</span><span style="COLOR: #000000">聽FR()聽freopen("Data.in","r",stdin);</span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">#define</span><span style="COLOR: #000000">聽FOR(s,i,t)聽for(i=s;i<=t;i++)</span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">#define</span><span style="COLOR: #000000">聽FUCK聽puts("Fuck聽You!");</span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">#define</span><span style="COLOR: #000000">聽PAUSE聽system("pause");</span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">#define</span><span style="COLOR: #000000">聽getmax(x,y)聽x>y?x:y;</span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">#define</span><span style="COLOR: #000000">聽getmin(x,y)聽x<y?x:y;</span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">#define</span><span style="COLOR: #000000">聽Abs(x)聽x>0?x?-x;</span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">#define</span><span style="COLOR: #000000">聽OK聽puts("OK!");</span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">#define</span><span style="COLOR: #000000">聽INF聽0x7fffffff</span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">#define</span><span style="COLOR: #000000">聽MIO聽FR()FW()</span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">#define</span><span style="COLOR: #000000">聽IO聽FR()FW()</span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">#define</span><span style="COLOR: #000000">聽MAXN聽1200</span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">#define</span><span style="COLOR: #000000">聽EPS聽1E-8</span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />#include</span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">algorithm</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />#include</span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">iostream</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />#include</span><span style="COLOR: #000000"><</span><span style="COLOR: #0000ff">string</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />#include</span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">vector</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />#include</span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">bitset</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />#include</span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">queue</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />#include</span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">stack</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />#include</span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">list</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />#include</span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">map</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />#include</span><span style="COLOR: #000000"><</span><span style="COLOR: #0000ff">set</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br /><img id="Codehighlighter1_617_627_Open_Image" onclick="this.style.display='none'; Codehighlighter1_617_627_Open_Text.style.display='none'; Codehighlighter1_617_627_Closed_Image.style.display='inline'; Codehighlighter1_617_627_Closed_Text.style.display='inline';" src="http://www.shnenglu.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_617_627_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_617_627_Closed_Text.style.display='none'; Codehighlighter1_617_627_Open_Image.style.display='inline'; Codehighlighter1_617_627_Open_Text.style.display='inline';" src="http://www.shnenglu.com/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">聽main()</span><span id="Codehighlighter1_617_627_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.shnenglu.com/images/dot.gif" /></span><span id="Codehighlighter1_617_627_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽聽IO聽OK聽<br /><img src="http://www.shnenglu.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span></div><img src ="http://www.shnenglu.com/ACflying/aggbug/86120.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/ACflying/" target="_blank">KNIGHT</a> 2009-05-29 22:14 <a href="http://www.shnenglu.com/ACflying/archive/2009/05/29/86120.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>[ZZ]鍚庣紑鏁扮粍http://www.shnenglu.com/ACflying/archive/2009/05/28/86031.htmlKNIGHTKNIGHTThu, 28 May 2009 11:53:00 GMThttp://www.shnenglu.com/ACflying/archive/2009/05/28/86031.htmlhttp://www.shnenglu.com/ACflying/comments/86031.htmlhttp://www.shnenglu.com/ACflying/archive/2009/05/28/86031.html#Feedback2http://www.shnenglu.com/ACflying/comments/commentRss/86031.htmlhttp://www.shnenglu.com/ACflying/services/trackbacks/86031.html 鍦ㄥ瓧絎︿覆澶勭悊褰撲腑錛屽悗緙鏍戝拰鍚庣紑鏁扮粍閮芥槸闈炲父鏈夊姏鐨勫伐鍏鳳紝鍏朵腑鍚庣紑鏍戝ぇ瀹朵簡瑙e緱姣旇緝澶氾紝鍏充簬鍚庣紑鏁扮粍鍒欏緢灝戣浜庡浗鍐呯殑璧勬枡銆傚叾瀹炲悗緙鏁扮粍鏄悗緙鏍戠殑涓涓潪甯哥簿宸х殑鏇夸唬鍝侊紝瀹冩瘮鍚庣紑鏍戝鏄撶紪紼嬪疄鐜幫紝鑳藉瀹炵幇鍚庣紑鏍戠殑寰堝鍔熻兘鑰屾椂闂村鏉傚害涔熶笉澶婅壊錛屽茍涓旓紝瀹冩瘮鍚庣紑鏍戞墍鍗犵敤鐨勭┖闂村皬寰堝銆傚彲浠ヨ錛屽湪淇℃伅瀛︾珵璧涗腑鍚庣紑鏁扮粍姣斿悗緙鏍戣鏇翠負瀹炵敤銆傚洜姝ゅ湪鏈枃涓瑪鑰呮兂浠嬬粛涓涓嬪悗緙鏁扮粍鐨勫熀鏈蹇點佹瀯閫犳柟娉曪紝浠ュ強閰嶅悎鍚庣紑鏁扮粍鐨勬渶闀垮叕鍏卞墠緙鏁扮粍鐨勬瀯閫犳柟娉曪紝鏈鍚庣粨鍚堜竴浜涗緥瀛愯皥璋堝悗緙鏁扮粍鐨勫簲鐢ㄣ?


鍩烘湰姒傚康

棣栧厛鏄庣‘涓浜涘繀瑕佺殑瀹氫箟錛?

瀛楃闆?涓涓瓧絎﹂泦鈭戞槸涓涓緩绔嬩簡鍏ㄥ簭鍏崇郴鐨勯泦鍚堬紝涔熷氨鏄錛屸垜涓殑浠繪剰涓や釜涓嶅悓鐨勫厓绱犖卞拰尾閮藉彲浠ユ瘮杈冨ぇ灝忥紝瑕佷箞偽<尾錛岃涔埼?lt;偽錛堜篃灝辨槸偽>尾錛夈傚瓧絎﹂泦鈭戜腑鐨勫厓绱犵О涓哄瓧絎︺?
瀛楃涓?涓涓瓧絎︿覆S鏄皢n涓瓧絎﹂『嬈℃帓鍒楀艦鎴愮殑鏁扮粍錛宯縐頒負S鐨勯暱搴︼紝琛ㄧず涓簂en(S)銆係鐨勭i涓瓧絎﹁〃紺轟負S[i]銆?
瀛愪覆 瀛楃涓睸鐨勫瓙涓睸[i..j]錛宨鈮錛岃〃紺篠涓蹭腑浠巌鍒癹榪欎竴孌碉紝涔熷氨鏄『嬈℃帓鍒桽[i],S[i+1],...,S[j]褰㈡垚鐨勫瓧絎︿覆銆?
鍚庣紑 鍚庣紑鏄寚浠庢煇涓綅緗甶寮濮嬪埌鏁翠釜涓叉湯灝劇粨鏉熺殑涓涓壒孌婂瓙涓層傚瓧絎︿覆S鐨勪粠i寮澶寸殑鍚庣紑琛ㄧず涓篠uffix(S,i)錛屼篃灝辨槸Suffix(S,i)=S[i..len(S)]銆?

鍏充簬瀛楃涓茬殑澶у皬姣旇緝錛屾槸鎸囬氬父鎵璇寸殑鈥滃瓧鍏擱『搴忊濇瘮杈冿紝涔熷氨鏄浜庝袱涓瓧絎︿覆u銆乿錛屼護i浠?寮濮嬮『嬈℃瘮杈僽[i]鍜寁[i]錛屽鏋滅浉絳夊垯浠鍔?錛屽惁鍒欒嫢u[i]<v[i]鍒欒涓簎<v錛寀[i]>v[i]鍒欒涓簎>v錛堜篃灝辨槸v<u錛夛紝姣旇緝緇撴潫銆傚鏋渋>len (u)鎴栬卛>len(v)浠嶆湭姣旇緝鍑虹粨鏋滐紝閭d箞鑻en(u)<len(v)鍒欒涓簎<v錛岃嫢len(u)=len(v)鍒欒涓簎= v錛岃嫢len(u)>len(v)鍒檜>v銆?
浠庡瓧絎︿覆鐨勫ぇ灝忔瘮杈冪殑瀹氫箟鏉ョ湅錛孲鐨勪袱涓紑澶翠綅緗笉鍚岀殑鍚庣紑u鍜寁榪涜姣旇緝鐨勭粨鏋滀笉鍙兘鏄浉絳夛紝鍥犱負u=v鐨勫繀瑕佹潯浠秎en(u)=len(v)鍦ㄨ繖閲屼笉鍙兘婊¤凍銆?

涓嬮潰鎴戜滑綰﹀畾涓涓瓧絎﹂泦鈭戝拰涓涓瓧絎︿覆S錛岃len(S)=n錛屼笖S[n]='$'錛屼篃灝辨槸璇碨浠ヤ竴涓壒孌婂瓧絎?$'緇撳熬錛屽茍涓?$'灝忎簬鈭戜腑鐨勪換浣曚竴涓瓧絎︺傞櫎浜哠[n]涔嬪錛孲涓殑鍏朵粬瀛楃閮藉睘浜庘垜銆傚浜庣害瀹氱殑瀛楃涓睸錛屼粠浣嶇疆i寮澶寸殑鍚庣紑鐩存帴鍐欐垚Suffix(i)錛岀渷鍘誨弬鏁癝銆?

鍚庣紑鏁扮粍 鍚庣紑鏁扮粍SA鏄竴涓竴緇存暟緇勶紝瀹冧繚瀛?..n鐨勬煇涓帓鍒桽A[1],SA[2],...SA[n]錛屽茍涓斾繚璇?Suffix(SA[i])<Suffix(SA[i+1]),1鈮<n銆備篃灝辨槸灝哠鐨刵涓悗緙浠庡皬鍒板ぇ榪涜鎺掑簭涔嬪悗鎶婃帓濂藉簭鐨勫悗緙鐨勫紑澶翠綅緗『嬈℃斁鍏A涓?
鍚嶆鏁扮粍 鍚嶆鏁扮粍Rank=SA-1錛屼篃灝辨槸璇磋嫢SA[i]=j錛屽垯Rank[j]=i錛屼笉闅劇湅鍑篟ank[i]淇濆瓨鐨勬槸Suffix(i)鍦ㄦ墍鏈夊悗緙涓粠灝忓埌澶ф帓鍒楃殑鈥滃悕嬈♀濄?


鏋勯犳柟娉?
濡備綍鏋勯犲悗緙鏁扮粍鍛紵鏈鐩存帴鏈綆鍗曠殑鏂規硶褰撶劧鏄妸S鐨勫悗緙閮界湅浣滀竴浜涙櫘閫氱殑瀛楃涓詫紝鎸夌収涓鑸瓧絎︿覆鎺掑簭鐨勬柟娉曞瀹冧滑浠庡皬鍒板ぇ榪涜鎺掑簭銆?
涓嶉毦鐪嬪嚭錛岃繖縐嶅仛娉曟槸寰堢鎷欑殑錛屽洜涓哄畠娌℃湁鍒╃敤鍒板悇涓悗緙涔嬮棿鐨勬湁鏈鴻仈緋伙紝鎵浠ュ畠鐨勬晥鐜囦笉鍙兘寰堥珮銆傚嵆浣塊噰鐢ㄥ瓧絎︿覆鎺掑簭涓瘮杈冮珮鏁堢殑Multi-key Quick Sort錛屾渶鍧忔儏鍐電殑鏃墮棿澶嶆潅搴︿粛鐒舵槸O(n2)鐨勶紝涓嶈兘婊¤凍鎴戜滑鐨勯渶瑕併?
涓嬮潰浠嬬粛鍊嶅綆楁硶(Doubling Algorithm)錛屽畠姝f槸鍏呭垎鍒╃敤浜嗗悇涓悗緙涔嬮棿鐨勮仈緋伙紝灝嗘瀯閫犲悗緙鏁扮粍鐨勬渶鍧忔椂闂村鏉傚害鎴愬姛闄嶈嚦O(nlogn)銆?

瀵逛竴涓瓧絎︿覆u錛屾垜浠畾涔塽鐨刱-鍓嶇紑

瀹氫箟k-鍓嶇紑姣旇緝鍏崇郴<k銆?k鍜屸墹k錛?
璁句袱涓瓧絎︿覆u鍜寁錛?
u<kv 褰撲笖浠呭綋 uk<vk
u=kv 褰撲笖浠呭綋 uk=vk
u鈮v 褰撲笖浠呭綋 uk鈮k

鐩磋鍦扮湅榪欎簺鍔犱簡涓涓笅鏍噆鐨勬瘮杈冪鍙風殑鎰忎箟灝辨槸瀵逛袱涓瓧絎︿覆鐨勫墠k涓瓧絎﹁繘琛屽瓧鍏稿簭姣旇緝錛岀壒鍒殑涓鐐瑰氨鏄湪浣滃ぇ浜庡拰灝忎簬鐨勬瘮杈冩椂濡傛灉鏌愪釜瀛楃涓茬殑闀垮害涓嶅埌k涔熸病鏈夊叧緋伙紝鍙鑳藉鍦╧涓瓧絎︽瘮杈冪粨鏉熶箣鍓嶅緱鍒扮涓涓瓧絎︿覆澶т簬鎴栬呭皬浜庣浜屼釜瀛楃涓插氨鍙互浜嗐?
鏍規嵁鍓嶇紑姣旇緝絎︾殑鎬ц川鎴戜滑鍙互寰楀埌浠ヤ笅鐨勯潪甯擱噸瑕佺殑鎬ц川錛?
鎬ц川1.1 瀵筴鈮錛孲uffix(i)<kSuffix(j) 絳変環浜?Suffix(i)<Suffix(j)銆?
鎬ц川1.2 Suffix(i)=2kSuffix(j)絳変環浜?
Suffix(i)=kSuffix(j) 涓?Suffix(i+k)=kSuffix(j+k)銆?
鎬ц川1.3 Suffix(i)<2kSuffix(j) 絳変環浜?
Suffix(i)<kS(j) 鎴?(Suffix(i)=kSuffix(j) 涓?Suffix(i+k)<kSuffix(j+k))銆?
榪欓噷鏈変竴涓棶棰橈紝褰搃+k>n鎴栬卝+k>n鐨勬椂鍊橲uffix(i+k)鎴朣uffix(j+k)鏄棤鏄庣‘瀹氫箟鐨勮〃杈懼紡錛屼絾瀹為檯涓婁笉闇瑕佽冭檻榪欎釜闂錛屽洜涓烘鏃禨uffix(i)鎴栬匰uffix(j)鐨勯暱搴︿笉瓚呰繃k錛屼篃灝辨槸璇村畠浠殑k-鍓嶇紑浠?$'緇撳熬錛屼簬鏄痥-鍓嶇紑姣旇緝鐨勭粨鏋滀笉鍙兘鐩哥瓑錛屼篃灝辨槸璇村墠k涓瓧絎﹀凡緇忚兘澶熸瘮鍑哄ぇ灝忥紝鍚庨潰鐨勮〃杈懼紡鑷劧鍙互蹇界暐錛岃繖涔熷氨鐪嬪嚭鎴戜滑瑙勫畾S浠?$'緇撳熬鐨勭壒孌婄敤澶勪簡銆?

瀹氫箟k-鍚庣紑鏁扮粍 SAk淇濆瓨1..n鐨勬煇涓帓鍒桽Ak[1],SAk[2],鈥Ak[n]浣垮緱Suffix(SAk[i]) 鈮Suffix(SAk[i+1]),1鈮<n銆備篃灝辨槸璇村鎵鏈夌殑鍚庣紑鍦╧-鍓嶇紑姣旇緝鍏崇郴涓嬩粠灝忓埌澶ф帓搴忥紝騫朵笖鎶婃帓搴忓悗鐨勫悗緙鐨勫紑澶翠綅緗『嬈℃斁鍏ユ暟緇凷Ak涓?
瀹氫箟k-鍚嶆鏁扮粍Rankk錛孯ankk[i]浠h〃Suffix(i)鍦╧-鍓嶇紑鍏崇郴涓嬩粠灝忓埌澶х殑鈥滃悕嬈♀濓紝涔熷氨鏄?鍔犱笂婊¤凍Suffix(j)<kSuffix(i)鐨刯鐨勪釜鏁般傞氳繃SAk寰堝鏄撳湪O(n)鐨勬椂闂村唴姹傚嚭Rankk銆?
鍋囪鎴戜滑宸茬粡姹傚嚭浜哠Ak鍜孯ankk錛岄偅涔堟垜浠彲浠ュ緢鏂逛究鍦版眰鍑篠A2k鍜孯ank2k錛屽洜涓烘牴鎹ц川1.2鍜?.3錛?k-鍓嶇紑姣旇緝鍏崇郴鍙互鐢卞父鏁頒釜k -鍓嶇紑姣旇緝鍏崇郴緇勫悎璧鋒潵絳変環鍦拌〃杈撅紝鑰孯ankk鏁扮粍瀹為檯涓婄粰鍑轟簡鍦ㄥ父鏁版椂闂村唴榪涜<k鍜?k姣旇緝鐨勬柟娉曪紝鍗籌細
Suffix(i)<kSuffix(j) 褰撲笖浠呭綋 Rankk[i]<Rankk[j]
Suffix(i)=kSuffix(j) 褰撲笖浠呭綋 Rankk[i]=Rankk[j]
鍥犳錛屾瘮杈僑uffix(i)鍜孲uffix(j)鍦╧-鍓嶇紑姣旇緝鍏崇郴涓嬬殑澶у皬鍙互鍦ㄥ父鏁版椂闂村唴瀹屾垚錛屼簬鏄鎵鏈夌殑鍚庣紑鍦ㄢ墹k鍏崇郴涓嬭繘琛屾帓搴忎篃灝卞拰涓鑸殑鎺掑簭娌℃湁浠涔堝尯鍒簡錛屽畠瀹為檯涓婂氨鐩稿綋浜庢瘡涓猄uffix(i)鏈変竴涓富鍏抽敭瀛桼ankk[i]鍜屼竴涓鍏抽敭瀛桼ankk[i+k]銆傚鏋滈噰鐢ㄥ揩閫熸帓搴忎箣綾籓 (nlogn)鐨勬帓搴忥紝閭d箞浠嶴Ak鍜孯ankk鏋勯犲嚭SA2k鐨勫鏉傚害灝辨槸O(nlogn)銆傛洿鑱槑鐨勬柟娉曟槸閲囩敤鍩烘暟鎺掑簭錛屽鏉傚害涓篛(n)銆?
姹傚嚭SA2k涔嬪悗灝卞彲浠ュ湪O(n)鐨勬椂闂村唴鏍規嵁SA2k鏋勯犲嚭Rank2k銆傚洜姝わ紝浠嶴Ak鍜孯ankk鎺ㄥ嚭SA2k鍜孯ank2k鍙互鍦∣(n)鏃墮棿鍐呭畬鎴愩?
涓嬮潰鍙湁涓涓棶棰橀渶瑕佽В鍐籌細濡備綍鏋勯犲嚭SA1鍜孯ank1銆傝繖涓棶棰橀潪甯哥畝鍗曪細鍥犱負<1錛?1鍜屸墹1榪欎簺榪愮畻絎﹀疄闄呬笂灝辨槸瀵瑰瓧絎︿覆鐨勭涓涓瓧絎﹁繘琛屾瘮杈冿紝鎵浠ュ彧瑕佹妸姣忎釜鍚庣紑鎸夌収瀹冪殑絎竴涓瓧絎﹁繘琛屾帓搴忓氨鍙互姹傚嚭SA1錛屼笉濡ㄥ氨閲囩敤蹇熸帓搴忥紝澶嶆潅搴︿負O(nlogn)銆?
浜庢槸錛屽彲浠ュ湪O(nlogn)鐨勬椂闂村唴姹傚嚭SA1鍜孯ank1銆?
姹傚嚭浜哠A1鍜孯ank1錛屾垜浠彲浠ュ湪O(n)鐨勬椂闂村唴姹傚嚭SA2鍜孯ank2錛屽悓鏍鳳紝鎴戜滑鍙互鍐嶇敤O(n)鐨勬椂闂存眰鍑篠A4鍜孯ank4錛岃繖鏍鳳紝鎴戜滑渚濇姹傚嚭錛?
SA2鍜孯ank2錛孲A4鍜孯ank4錛孲A8鍜孯ank8錛屸︹︾洿鍒癝Am鍜孯ankm錛屽叾涓璵=2k涓攎鈮銆傝屾牴鎹ц川1.1錛孲Am鍜孲A鏄瓑浠風殑銆傝繖鏍蜂竴鍏遍渶瑕佽繘琛宭ogn嬈(n)鐨勮繃紼嬶紝鍥犳
鍙互鍦∣(nlogn)鐨勬椂闂村唴璁$畻鍑哄悗緙鏁扮粍SA鍜屽悕嬈℃暟緇凴ank銆?

鏈闀垮叕鍏卞墠緙
鐜板湪涓涓瓧絎︿覆S鐨勫悗緙鏁扮粍SA鍙互鍦∣(nlogn)鐨勬椂闂村唴璁$畻鍑烘潵銆傚埄鐢⊿A鎴戜滑宸茬粡鍙互鍋氬緢澶氫簨鎯咃紝姣斿鍦∣(mlogn)鐨勬椂闂村唴榪涜妯″紡鍖歸厤錛屽叾涓璵,n鍒嗗埆涓烘ā寮忎覆鍜屽緟鍖歸厤涓茬殑闀垮害銆備絾鏄鎯蟲洿鍏呭垎鍦板彂鎸ュ悗緙鏁扮粍鐨勫▉鍔涳紝鎴戜滑榪橀渶瑕佽綆椾竴涓緟鍔╃殑宸ュ叿鈥斺旀渶闀垮叕鍏卞墠緙錛圠ongest Common Prefix錛夈?
瀵逛袱涓瓧絎︿覆u,v瀹氫箟鍑芥暟lcp(u,v)=max{i|u=iv}錛屼篃灝辨槸浠庡ご寮濮嬮『嬈℃瘮杈僽鍜寁鐨勫搴斿瓧絎︼紝瀵瑰簲瀛楃鎸佺畫鐩哥瓑鐨勬渶澶т綅緗紝縐頒負榪欎袱涓瓧絎︿覆鐨勬渶闀垮叕鍏卞墠緙銆?
瀵規鏁存暟i,j瀹氫箟LCP(i,j)=lcp(Suffix(SA[i]),Suffix(SA[j])錛屽叾涓璱,j鍧囦負1鑷硁鐨勬暣鏁般侺CP(i,j)涔熷氨鏄悗緙鏁扮粍涓i涓拰絎琷涓悗緙鐨勬渶闀垮叕鍏卞墠緙鐨勯暱搴︺?
鍏充簬LCP鏈変袱涓樉鑰屾槗瑙佺殑鎬ц川錛?
鎬ц川2.1 LCP(i,j)=LCP(j,i)
鎬ц川2.2 LCP(i,i)=len(Suffix(SA[i]))=n-SA[i]+1
榪欎袱涓ц川鐨勭敤澶勫湪浜庯紝鎴戜滑璁$畻LCP(i,j)鏃跺彧闇瑕佽冭檻i<j鐨勬儏鍐碉紝鍥犱負i>j鏃跺彲浜ゆ崲i,j錛宨=j鏃跺彲浠ョ洿鎺ヨ緭鍑虹粨鏋渘-SA[i]+1銆?

鐩存帴鏍規嵁瀹氫箟錛岀敤欏烘姣旇緝瀵瑰簲瀛楃鐨勬柟娉曟潵璁$畻LCP(i,j)鏄劇劧鏄緢浣庢晥鐨勶紝鏃墮棿澶嶆潅搴︿負O(n)錛屾墍浠ユ垜浠繀欏昏繘琛岄傚綋鐨勯澶勭悊浠ラ檷浣庢瘡嬈¤綆桳CP鐨勫鏉傚害銆?
緇忚繃浠旂粏鍒嗘瀽錛屾垜浠彂鐜癓CP鍑芥暟鏈変竴涓潪甯稿ソ鐨勬ц川錛?
璁緄<j錛屽垯LCP(i,j)=min{LCP(k-1,k)|i+1鈮鈮} 錛圠CP Theorem錛?

瑕佽瘉鏄嶭CP Theorem錛岄鍏堣瘉鏄嶭CP Lemma:
瀵逛換鎰?鈮<j<k鈮錛孡CP(i,k)=min{LCP(i,j),LCP(j,k)}
璇佹槑錛氳p=min{LCP(i,j),LCP(j,k)}錛屽垯鏈塋CP(i,j)鈮,LCP(j,k)鈮銆?
璁維uffix(SA[i])=u,Suffix(SA[j])=v,Suffix(SA[k])=w銆?
鐢眜=LCP(i,j)v寰梪=pv錛涘悓鐞唙=pw銆?
浜庢槸Suffix(SA[i])=pSuffix(SA[k])錛屽嵆LCP(i,k)鈮銆?(1)

鍙堣LCP(i,k)=q>p錛屽垯
u[1]=w[1],u[2]=w[2],...u[q]=w[q]銆?
鑰宮in{LCP(i,j),LCP(j,k)}=p璇存槑u[p+1]鈮爒[p+1]鎴杤[p+1]鈮爓[q+1]錛?
璁緐[p+1]=x,v[p+1]=y,w[p+1]=z錛屾樉鐒舵湁x鈮鈮錛屽張鐢眕<q寰梡+1鈮錛屽簲璇ユ湁x=z錛屼篃灝辨槸x=y=z錛岃繖涓巙[p+1]鈮爒[p+1]鎴杤[p+1]鈮爓[q+1]鐭涚浘銆?
浜庢槸錛宷>p涓嶆垚绔嬶紝鍗矻CP(i,k)鈮銆?(2)
緇煎悎(1),(2)鐭?LCP(i,k)=p=min{LCP(i,j),LCP(j,k)}錛孡CP Lemma寰楄瘉銆?

浜庢槸LCP Theorem鍙互璇佹槑濡備笅錛?
褰搄-i=1鍜宩-i=2鏃訛紝鏄劇劧鎴愮珛銆?
璁緅-i=m鏃禠CP Theorem鎴愮珛錛屽綋j-i=m+1鏃訛紝
鐢盠CP Lemma鐭CP(i,j)=min{LCP(i,i+1),LCP(i+1,j)}錛?
鍥爅-(i+1)鈮錛孡CP(i+1,j)=min{LCP(k-1,k)|i+2鈮鈮}錛屾晠褰搄-i=m+1鏃訛紝浠嶆湁
LCP(i,j)=min{LCP(i,i+1),min{LCP(k-1,k)|i+2鈮鈮}}=min{LCP(k-1,k}|i+1鈮鈮)
鏍規嵁鏁板褰掔撼娉曪紝LCP Theorem鎴愮珛銆?

鏍規嵁LCP Theorem寰楀嚭蹇呯劧鐨勪竴涓帹璁猴細
LCP Corollary 瀵筰鈮<k錛孡CP(j,k)鈮CP(i,k)銆?

瀹氫箟涓緇存暟緇刪eight錛屼護height[i]=LCP(i-1,i)錛?<i鈮錛屽茍璁緃eight[1]=0銆?
鐢盠CP Theorem錛孡CP(i,j)=min{height[k]|i+1鈮鈮}錛屼篃灝辨槸璇達紝璁$畻LCP(i,j)絳夊悓浜庤闂竴緇存暟緇刪eight涓笅鏍囧湪i+1鍒癹鑼冨洿鍐呯殑鎵鏈夊厓绱犵殑鏈灝忓箋傚鏋渉eight鏁扮粍鏄浐瀹氱殑錛岃繖灝辨槸闈炲父緇忓吀鐨凴MQ錛圧ange Minimum Query錛夐棶棰樸?
RMQ闂鍙互鐢ㄧ嚎孌墊爲鎴栭潤鎬佹帓搴忔爲鍦∣(nlogn)鏃墮棿鍐呰繘琛岄澶勭悊錛屼箣鍚庢瘡嬈¤闂姳璐規椂闂碠(logn)錛屾洿濂界殑鏂規硶鏄疪MQ鏍囧噯綆楁硶錛屽彲浠ュ湪O(n)鏃墮棿鍐呰繘琛岄澶勭悊錛屾瘡嬈¤闂彲浠ュ湪甯告暟鏃墮棿鍐呭畬鎴愩?
瀵逛簬涓涓浐瀹氱殑瀛楃涓睸錛屽叾height鏁扮粍鏄劇劧鏄浐瀹氱殑錛屽彧瑕佹垜浠兘楂樻晥鍦版眰鍑篽eight鏁扮粍錛岄偅涔堣繍鐢≧MQ鏂規硶榪涜棰勫鐞嗕箣鍚庯紝姣忔璁$畻LCP(i,j)鐨勬椂闂村鏉傚害灝辨槸甯告暟綰т簡銆備簬鏄彧鏈変竴涓棶棰樷斺斿浣曞敖閲忛珮鏁堝湴綆楀嚭height鏁扮粍銆?
鏍規嵁璁$畻鍚庣紑鏁扮粍鐨勭粡楠岋紝鎴戜滑涓嶅簲璇ユ妸n涓悗緙鐪嬩綔浜掍笉鐩稿叧鐨勬櫘閫氬瓧絎︿覆錛岃屽簲璇ュ敖閲忓埄鐢ㄥ畠浠箣闂寸殑鑱旂郴錛屼笅闈㈣瘉鏄庝竴涓潪甯告湁鐢ㄧ殑鎬ц川錛?
涓轟簡鎻忚堪鏂逛究錛岃h[i]=height[Rank[i]]錛屽嵆height[i]=h[SA[i]]銆俬鏁扮粍婊¤凍涓涓ц川錛?
鎬ц川3 瀵逛簬i>1涓擱ank[i]>1錛屼竴瀹氭湁h[i]鈮[i-1]-1銆?
涓轟簡璇佹槑鎬ц川3錛屾垜浠湁蹇呰鏄庣‘涓や釜浜嬪疄錛?

璁緄<n,j<n錛孲uffix(i)鍜孲uffix(j)婊¤凍lcp(Suffix(i),Suffix(j)>1錛屽垯鎴愮珛浠ヤ笅涓ょ偣錛?
Fact 1 Suffix(i)<Suffix(j) 絳変環浜?Suffix(i+1)<Suffix(j+1)銆?
Fact 2 涓瀹氭湁lcp(Suffix(i+1),Suffix(j+1))=lcp(Suffix(i),Suffix(j))-1銆?
鐪嬭搗鏉ュ緢紲炲錛屼絾鍏跺疄寰堣嚜鐒訛細lcp(Suffix(i),Suffix(j))>1璇存槑Suffix(i)鍜孲uffix(j)鐨勭涓涓瓧絎︽槸鐩稿悓鐨勶紝璁懼畠涓何憋紝鍒橲uffix(i)鐩稿綋浜幬卞悗榪炴帴Suffix(i+1)錛孲uffix(j)鐩稿綋浜幬卞悗榪炴帴Suffix(j+1)銆傛瘮杈僑uffix (i)鍜孲uffix(j)鏃訛紝絎竴涓瓧絎ξ辨槸涓瀹氱浉絳夌殑錛屼簬鏄悗闈㈠氨絳変環浜庢瘮杈僑uffix(i)鍜孲uffix(j)錛屽洜姝act 1鎴愮珛銆侳act 2鍙被浼艱瘉鏄庛?

浜庢槸鍙互璇佹槑鎬ц川3錛?
褰揾[i-1]鈮?鏃訛紝緇撹鏄劇劧鎴愮珛錛屽洜h[i]鈮?鈮[i-1]-1銆?
褰揾[i-1]>1鏃訛紝涔熷嵆height[Rank[i-1]]>1錛屽彲瑙丷ank[i-1]>1錛屽洜height[1]=0銆?
浠=i-1,k=SA[Rank[j]-1]銆傛樉鐒舵湁Suffix(k)<Suffix(j)銆?
鏍規嵁h[i-1]=lcp(Suffix(k),Suffix(j))>1鍜孲uffix(k)<Suffix(j)錛?
鐢盕act 2鐭cp(Suffix(k+1),Suffix(i))=h[i-1]-1銆?
鐢盕act 1鐭ank[k+1]<Rank[i]錛屼篃灝辨槸Rank[k+1]鈮ank[i]-1銆?
浜庢槸鏍規嵁LCP Corollary錛屾湁
LCP(Rank[i]-1,Rank[i])鈮CP(Rank[k+1],Rank[i])
=lcp(Suffix(k+1),Suffix(i))
=h[i-1]-1
鐢變簬h[i]=height[Rank[i]]=LCP(Rank[i]-1,Rank[i])錛屾渶緇堝緱鍒?h[i]鈮[i-1]-1銆?

鏍規嵁鎬ц川3錛屽彲浠ヤ護i浠?寰幆鍒皀鎸夌収濡備笅鏂規硶渚濇綆楀嚭h[i]錛?
鑻ank[i]=1錛屽垯h[i]=0銆傚瓧絎︽瘮杈冩鏁頒負0銆?
鑻=1鎴栬卙[i-1]鈮?錛屽垯鐩存帴灝哠uffix(i)鍜孲uffix(Rank[i]-1)浠庣涓涓瓧絎﹀紑濮嬩緷嬈℃瘮杈冪洿鍒版湁瀛楃涓嶇浉鍚岋紝鐢辨璁$畻鍑篽[i]銆傚瓧絎︽瘮杈冩鏁頒負h[i]+1錛屼笉瓚呰繃h[i]-h[i-1]+2銆?
鍚﹀垯錛岃鏄巌>1錛孯ank[i]>1錛宧[i-1]>1錛屾牴鎹ц川3錛孲uffix(i)鍜孲uffix(Rank[i]-1)鑷沖皯鏈夊墠h[i-1]-1涓瓧絎︽槸鐩稿悓鐨勶紝浜庢槸瀛楃姣旇緝鍙互浠巋[i-1]寮濮嬶紝鐩村埌鏌愪釜瀛楃涓嶇浉鍚岋紝鐢辨璁$畻鍑篽[i]銆傚瓧絎︽瘮杈冩鏁頒負h[i]-h[i- 1]+2銆?

璁維A[1]=p錛岄偅涔堜笉闅劇湅鍑烘葷殑瀛楃姣旇緝嬈℃暟涓嶈秴榪?

涔熷氨鏄錛屾暣涓畻娉曠殑澶嶆潅搴︿負O(n)銆?
姹傚嚭浜唄鏁扮粍錛屾牴鎹叧緋誨紡height[i]=h[SA[i]]鍙互鍦∣(n)鏃墮棿鍐呮眰鍑篽eight鏁扮粍錛屼簬鏄?
鍙互鍦∣(n)鏃墮棿鍐呮眰鍑篽eight鏁扮粍銆?

緇撳悎RMQ鏂規硶錛屽湪O(n)鏃墮棿鍜岀┖闂磋繘琛岄澶勭悊涔嬪悗灝辮兘鍋氬埌鍦ㄥ父鏁版椂闂村唴璁$畻鍑哄浠繪剰(i,j)璁$畻鍑篖CP(i,j)銆?
鍥犱負lcp(Suffix(i),Suffix(j))=LCP(Rank[i],Rank[j])錛屾墍浠ユ垜浠篃灝卞彲浠ュ湪甯告暟鏃墮棿鍐呮眰鍑篠鐨勪換浣曚袱涓悗緙涔嬮棿鐨勬渶闀垮叕鍏卞墠緙銆傝繖姝f槸鍚庣紑鏁扮粍鑳藉己鏈夊姏鍦板鐞嗗緢澶氬瓧絎︿覆闂鐨勯噸瑕佸師鍥犱箣涓銆?br />鍚庣紑鏁扮粍鐨勫簲鐢?br />涓嬮潰緇撳悎涓や釜渚嬪瓙璋堣皥濡備綍榪愮敤鍚庣紑鏁扮粍.

渚嬩竴 澶氭ā寮忎覆鐨勬ā寮忓尮閰嶉棶棰?br />緇欏畾涓涓浐瀹氬緟鍖歸厤涓睸,闀垮害涓簄,鐒跺悗姣忔杈撳叆涓涓ā寮忎覆P,闀垮害涓簃,瑕佹眰榪斿洖P鍦⊿涓殑涓涓尮閰嶆垨鑰呰繑鍥炲尮閰嶅け璐?鎵璋撳尮閰嶆寚鏌愪釜浣嶇疆i婊¤凍1鈮鈮-m+1浣垮緱S[i..(i+m-1)]=P,涔熷嵆Suffix(i)=mP.
鎴戜滑鐭ラ亾,濡傛灉鍙湁涓涓ā寮忎覆,鏈濂界殑綆楁硶灝辨槸KMP綆楁硶,鏃墮棿澶嶆潅搴︿負O(n+m),浣嗘槸濡傛灉鏈夊涓ā寮忎覆,鎴戜滑灝辮鑰冭檻鍋氶傚綋鐨勯澶勭悊浣垮緱瀵規瘡涓ā寮忎覆榪涜鍖歸厤鎵鑺辯殑鏃墮棿灝忎竴浜?鏈綆鍗曠殑棰勫鐞嗚帿榪囦簬寤虹珛S鐨勫悗緙鏁扮粍(鍏堝湪S鐨勫悗闈㈡坊鍔?$'),鐒跺悗姣忔瀵繪壘鍖歸厤杞寲涓虹敤浜屽垎鏌ユ壘娉曞湪SA涓壘鍒板拰P鐨勫叕鍏卞墠緙鏈闀跨殑涓涓悗緙,鍒ゆ柇榪欎釜鏈闀跨殑鍏叡鍓嶇紑鏄惁絳変簬m.榪欐牱,姣忔姣旇緝P鍜屼竴涓悗緙鐨勫鏉傚害涓篛(m),鍥犱負鏈鍧忔儏鍐典笅鍙兘姣旇緝浜唌涓瓧絎?浜屽垎鏌ユ壘闇瑕佽皟鐢ㄦ瘮杈冪殑嬈℃暟涓篛(logn),鍥犳鎬誨鏉傚害涓篛(mlogn),浜庢槸姣忔鍖歸厤鐨勫鏉傚害浠嶰(n+m)鍙樹負O(mlogn),鍙互璇存敼榪涗簡涓嶅皯.鍙槸榪欐牱浠嶇劧涓嶈兘浠ゆ垜浠弧瓚?鍓嶉潰鎻愬埌LCP鍙互澧炲姞鍚庣紑鏁扮粍鐨勫▉鍔?

鎴戜滑鏉ヨ瘯璇曠敤鍦ㄨ繖涓棶棰樹笂.
鎴戜滑鍒嗘瀽鍘熷鐨勪簩鍒嗘煡鎵劇畻娉?澶т綋鏈変互涓嬪嚑姝?
Step 1 浠eft=1,right=n,max_match=0.
Step 2 浠id=(left+right)/2(榪欓噷"/"琛ㄧず鍙栨暣闄ゆ硶).
Step 3 欏烘姣旇緝Suffix(SA[mid])鍜孭鐨勫搴斿瓧絎?鎵懼埌涓よ呯殑鏈闀垮叕鍏?br />鍓嶇紑r,騫跺垽鏂嚭瀹冧滑鐨勫ぇ灝忓叧緋?鑻>max_match鍒欎護max_match=r,ans=mid.
Step 4 鑻uffix(SA[mid])P鍒欎護
right=mid-1,鑻uffix(SA[mid])=P鍒欒漿鑷砈tep 6.
Step 5 鑻eft
Step 6 鑻ax_match=m鍒欒緭鍑篴ns,鍚﹀垯杈撳嚭"鏃犲尮閰?.
娉ㄦ剰鍔涘緢蹇泦涓湪Step 3,濡傛灉鑳藉閬垮厤姣忔閮戒粠澶村紑濮嬫瘮杈僑uffix(SA[mid])鍜孭鐨勫搴斿瓧絎?涔熻澶嶆潅搴﹀氨鍙互榪涗竴姝ラ檷浣?綾諱技浜庡墠闈㈡眰height鏁扮粍,鎴戜滑鑰冭檻鍒╃敤浠ュ墠姹傚緱鐨勬渶闀垮叕鍏卞墠緙浣滀負姣旇緝鐨?鍩虹",閬垮厤鍐椾綑鐨勫瓧絎︽瘮杈?

鍦ㄦ瘮杈僑uffix(SA[mid])鍜孭涔嬪墠,鎴戜滑鍏堢敤甯告暟鏃墮棿璁$畻LCP(mid,ans),鐒跺悗姣旇緝LCP(mid,ans)鍜宮ax_match:鎯呭喌涓:LCP(mid,ans)k+1,T[i-r'..i-1]鍜孴[i+1..i+r']涔熶笉鍙兘鍏充簬T[i]瀵圭О浜?鎵浠鏈澶у彧鑳藉埌k.鎴戜滑鎶妑閫掑鐨勮繃紼嬬О涓哄悜涓よ竟鎵╁睍,鎵╁睍涓嬈″氨鍙互鎶婁互T[i]涓轟腑蹇冪殑濂囧洖鏂囧瓙涓茬殑闀垮害鍔?.鏈鍚巖鎵╁睍鍒扮殑鏈澶у煎喅瀹氫簡浠[i]涓轟腑蹇冪殑濂囧洖鏂囧瓙涓蹭腑鐨勬渶闀胯呯殑闀垮害(涓?r+1).璁緇en(T)=m,濡傛灉鐢ㄤ緷嬈℃瘮杈冨搴斿瓧絎︾殑鏂規硶鏉ユ眰鍚戜袱杈規墿灞曠殑鏈澶у?鍒欐渶澶氬彲鑳芥瘮杈僲-1涓瓧絎?鐢變簬瑕佹灇涓炬瘡涓綅緗綔涓轟腑蹇冨悜涓よ竟鎵╁睍,鎵浠ユ渶鍧忔儏鍐典笅鎬葷殑澶嶆潅搴﹀彲浠ヨ揪鍒癘(m2),涓嶅緢鐞嗘兂.
涓嬮潰浼樺寲綆楁硶鐨勬牳蹇冮儴鍒?br />鈥斺斾互涓涓綅緗負涓績姹傚悜涓よ竟鎵╁睍鐨勬渶澶у?
鍦═涓茬殑鏈熬娣誨姞涓涓壒孌婂瓧絎?#',瑙勫畾瀹冧笉絳変簬T鐨勪換浣曚竴涓瓧絎?鐒跺悗鎶奣涓查鍊?鎺ュ湪'#'鍚?鍦═'涓插悗鍐嶆坊鍔犵壒孌婂瓧絎?$',瑙勫畾瀹冨皬浜庡墠闈㈢殑浠諱綍涓涓瓧絎?鎷兼帴鍚庡艦鎴愮殑涓茬О涓篠涓?涓嶉毦鐪嬪嚭T涓蹭腑浠諱綍涓涓瓧絎﹂兘鍙湪T'涓縐板湴鎵懼埌涓涓浉鍚岀殑瀛楃.濡傛灉閮界敤S閲岀殑瀛楃鏉ヨ〃紺?S[1..m]鏄疶涓?S[m+2..2m+1]鏄疶'涓?鍒欐瘡涓猄[i](1鈮鈮)鍏充簬'#'瀵圭О鐨勫瓧絎︽槸S[2m-i+2].榪欐牱鍘熷厛T涓查噷闈㈢殑涓涓瓙涓睸[i..j](1鈮鈮鈮)鍏充簬'#'涔熷彲浠ュ縐板湴鎵懼埌涓涓弽灝勭浉絳夌殑瀛愪覆S[2m-j+2..2m-i+2].
鐜板湪鎴戜滑瀹氫笅T涓茬殑鏌愪釜浣嶇疆S[i]涓轟腑蹇?鍋囪鍚戜袱杈規墿灞曞埌浜唅-r鍜宨+r,閭d箞S[i-r..i-1]鍜孲[i+1..i+r]鏄弽灝勭浉絳夌殑,S[i]鍙互鍦═'涓壘鍒板縐扮殑瀛楃S[2m-i+2],璁緄'=2m-i+2,鍒橲[i-r..i-1]涔熷彲浠ュ湪T'涓壘鍒板縐扮殑瀛愪覆S[i'+1..i'+r],
banana#ananab$
TT'
ii'=2m-i+2
閭d箞S[i+1..i+r]鍜孲[i'+1..i'+r]鍚屾椂涓嶴[i-r..i-1]鍙嶅皠鐩哥瓑,涔熷氨鏄,S[i+1..i+r]=S[i'+1..i'+r].鍙堝洜涓篠[i]=S[i'],鏁匰[i..i+r]=S[i'..i'+r].涔熷氨鏄,Suffix(i)=r+1Suffix(i').鐜板湪瑕佹眰r灝介噺澶?涔熷氨鏄眰max{r|Suffix(i)=r+1Suffix(i')},涓嶉毦鐪嬪嚭,榪欓噷r=LCP(i,i')-1.涓婇潰鐨勬帹鐞嗚繕瀛樺湪涓涓棶棰?鍗蟲眰鍑虹殑LCP(i,i')-1榪樺彧鑳界湅浣渞鐨勪竴涓笂鐣?榪樹笉鑳藉綋鎴恟鐨勬渶澶у?鍥犱負榪橀渶瑕佽瘉鏄庣粰鍑篠uffix(i)鍜孲uffix(i')鐨勬渶闀垮叕鍏卞墠緙,涓瀹氬彲浠ュ弽榪囨潵鍦═涓蹭腑鎵懼埌鐩稿簲鐨勪互i涓轟腑蹇冪殑鍥炴枃涓?榪欎釜璇佹槑涓庡墠闈㈢殑鎺ㄧ悊綾諱技,鍙槸闇瑕佹敞鎰忎竴鐐?榪欓噷鍒╃敤鍒頒簡'#'榪欎釜鐗規畩瀛楃閬垮厤浜嗘綔鍦ㄧ殑LCP(i,i')瓚呰繃瀹為檯鐨剅鏈澶у肩殑鍗遍櫓.榪欎釜璇佹槑鐣欑粰璇昏呰嚜琛屽畬鎴?鎬諱箣,鎴戜滑宸茬粡紜畾姹備互T[i]涓轟腑蹇冨悜涓よ竟鎵╁睍鐨勬渶澶у肩瓑浠蜂簬姹侺CP(i,i'),鏍規嵁鍓嶉潰鍚庣紑鏁扮粍鍜孡CP鐨勭浉鍏沖唴瀹硅繖涓姝ユ搷浣滃彲浠ュ湪甯告暟鏃墮棿鍐呭畬鎴?鍙鎴戜滑棰勫厛鑺辮垂O(nlogn)鐨勫鏉傚害璁$畻鍚庣紑鏁扮粍,height鏁扮粍鍜岃繘琛岄澶勭悊.鍏朵腑n=len(S)=2m+2.
鐜板湪姣忔姹備互涓涓綅緗甌[i]涓轟腑蹇冪殑鍥炴枃瀛愪覆涓殑鏈闀胯呯殑闀垮害鍙互鍦ㄥ父鏁版椂闂村唴瀹屾垚,鎴戜滑鏋氫婦i浠?鍒癿,渚濇姹傚嚭鎵鏈夌殑榪欎簺鏈闀胯?璁板綍鍏朵腑鏈澶х殑涓涓殑闀垮害,灝辨槸鎵瑕佹眰鐨勬渶闀垮鍥炴枃瀛愪覆鐨勯暱搴?鐢變簬瀵規瘡涓腑蹇冭姳璐規椂闂翠負甯告暟,鎵浠ユ葷殑澶嶆潅搴︿負O(m).鍥犳鏁翠釜綆楁硶鐨勫鏉傚害鏄疧(nlogn+m)=O(2mlog(2m)+m)=O(mlogm),鏄潪甯鎬紭縐鐨勭畻娉?姣斾箣鍓嶇殑騫蟲柟綰х畻娉曞ぇ涓烘敼榪?

鍚庣紑鏁扮粍涓庡悗緙鏍戠殑姣旇緝
閫氳繃涓婇潰鐨勪袱涓緥瀛愮浉淇¤鑰呭凡緇忓鍚庣紑鏁扮粍鐨勫己澶у姛鑳芥湁鎵浜嗚В,鍙︿竴縐嶆暟鎹粨鏋勨斺斿悗緙鏍?涔熷彲浠ョ敤鍦ㄨ繖浜涢棶棰樹腑,閭d箞鍚庣紑鏁扮粍鍜屽悗緙鏍戞湁浠涔堝尯鍒拰鑱旂郴鍛?鎴戜滑鏉ユ瘮杈冧竴涓?
棣栧厛,鍚庣紑鏁扮粍姣旇緝瀹規槗鐞嗚В,涔熸槗浜庣紪紼嬪疄鐜?鑰屼笖涓嶅儚鍚庣紑鏍戦偅鏍烽渶瑕佹秹鍙婂埌鎸囬拡鎿嶄綔,鎵浠ヨ皟璇曡搗鏉ユ瘮杈冩柟渚?絎簩,鍚庣紑鏁扮粍鍗犵敤鐨勭┖闂存瘮鍚庣紑鏍戣灝?鍒氭墠鍒嗘瀽涓垜浠茍娌℃湁鎻愬埌絀洪棿澶嶆潅搴︾殑闂,榪欓噷綆鍗曡涓涓?鍚庣紑鏁扮粍SA鍜屽悕璇嶆暟緇凴ank閮藉彧闇瑕乶涓暣鏁扮殑絀洪棿,鑰屽湪鐢盧ankk璁$畻鍑篠A2k鐨勮繃紼嬩腑闇瑕佺敤涓や釜涓緇存暟緇勬潵杈呭姪瀹屾垚,鍚勫崰n涓暣鏁扮殑絀洪棿,婊氬姩鍦拌繘琛屾搷浣?鏁翠釜綆楁硶鍙渶瑕佽繖鍥涗釜涓緇存暟緇勫拰甯告暟涓緟鍔╁彉閲?鍥犳鎬葷殑絀洪棿鍗犵敤涓?n涓暣鏁?鑰屽悗緙鏍戦氬父鏈?n涓互涓婅妭鐐?閫氬父姣忎釜鑺傜偣瑕佷袱涓暣鏁?鍗充嬌閲囩敤涓浜涙妧宸?鑷沖皯榪樻槸瑕佷繚瀛樹竴涓暣鏁?,姣忎釜鑺傜偣瑕佹湁涓や釜鎸囬拡(鍋囪閲囩敤鍎垮瓙-鍏勫紵琛ㄧず鏂規硶),鍥犳鎬誨叡鐨勭┖闂村崰鐢ㄨ嚦灝戞槸4n涓寚閽堝拰2n涓暣鏁?鑷沖皯鏄痭涓暣鏁?.濡傛灉閲囩敤鍏朵粬鏂規硶琛ㄧず鏍戠姸緇撴瀯,闇瑕佺殑絀洪棿鏇村ぇ.鍙互鐪嬪嚭鍚庣紑鏁扮粍鐨勭┖闂撮渶姹傛瘮鍚庣紑鏍戝皬.
鏈鍚庢瘮杈冨畠浠殑澶嶆潅搴?
棣栧厛鎸夌収瀛楃鎬繪暟|鈭憒鎶婂瓧絎﹂泦鈭戝垎涓轟笁縐嶇被鍨?
鑻鈭憒鏄竴涓父鏁?鍒欑О鈭戜負Constant Alphabet,
鑻鈭憒鐨勫ぇ灝忔槸鍏充簬S鐨勯暱搴鐨勫欏瑰紡鍑芥暟,鍒欑О鈭戜負Integer Alphabet,
鑻鈭憒娌℃湁澶у皬涓婄殑闄愬埗,鍒欑О鈭戜負General Alphabet.

鏄劇劧Constant Alphbet灞炰簬Integer Alphabet鐨勪竴縐?鑰孖nteger Alphabet鏄疓eneral Alphabet鐨勪竴縐?鏋勯犲悗緙鏁扮粍鐨勫鏉傚害涓庡瓧絎﹂泦鏃犲叧,鍥犱負瀹冩槸鐩存帴閽堝General Alphabet鐨勭畻娉?瀵逛簬鏅氭柟娉曟瀯閫犲悗緙鏍?濡傛灉鐢ㄥ効瀛?鍏勫紵鏂瑰紡琛ㄨ揪鏍戠姸緇撴瀯,鏃墮棿澶嶆潅搴﹁揪鍒癘(n*|鈭憒),鏄劇劧瀵逛簬Integer Alphabet 鍜?General Alphabet閮藉緢浣庢晥,瀵箌鈭憒杈冨ぇ鐨凜onstant Alphabet涔熶笉閫傜敤.瑙e喅鐨勬柟娉曟槸鐢ㄥ鉤琛′簩鍙夋爲鏉ヤ繚瀛樻寚鍚戝効瀛愮殑鎸囬拡,榪欐牱澶嶆潅搴﹀彉涓篛(n*log|鈭憒).鍙鍚庣紑鏍戝湪鏌愪簺鎯呭喌涓嬬浉瀵瑰悗緙鏁扮粍鏈夐熷害涓婄殑浼樺娍,浣嗘槸騫朵笉鏄庢樉.瀵逛簬|鈭憒寰堝皬鐨勫瓧絎︿覆,鍚庣紑鏍戠浉姣斿悗緙鏁扮粍鐨勯熷害浼樺娍榪樻槸姣旇緝鍙鐨?灝ゅ叾鏄浜庡緢甯歌鐨?-1涓?
鍚庣紑鏁扮粍瀹為檯涓婂彲浠ョ湅浣滃悗緙鏍戠殑鎵鏈夊彾緇撶偣鎸夌収浠庡乏鍒板彸鐨勬搴忔帓鍒楁斁鍏ユ暟緇勪腑褰㈡垚鐨?鎵浠ュ悗緙鏁扮粍鐨勭敤閫斾笉鍙兘瓚呭嚭鍚庣紑鏍戠殑鑼冨洿.鐢氳嚦鍙互璇?濡傛灉涓嶉厤鍚圠CP,鍚庣紑鏁扮粍鐨勫簲鐢ㄨ寖鍥存槸寰堢嫮紿勭殑.浣嗘槸LCP鍑芥暟閰嶅悎涓嬬殑鍚庣紑鏁扮粍灝遍潪甯稿己澶?鍙互瀹屾垚澶у鏁板悗緙鏍戞墍鑳藉畬鎴愮殑浠誨姟,鍥犱負LCP鍑芥暟瀹為檯涓婄粰鍑轟簡浠繪剰涓や釜鍙跺瓙緇撶偣鐨勬渶榪戝叕鍏辯鍏?榪欐柟闈㈢殑鍐呭澶у鍙互鑷鐮?br />絀?鍚庣紑鏍戝拰鍚庣紑鏁扮粍閮芥槸瀛楃涓插鐞嗕腑闈炲父浼樼鐨勬暟鎹粨鏋?涓嶈兘璇翠竴涓偗瀹氫紭浜庡彟涓涓?瀵逛簬涓嶅悓鍦哄悎,涓嶅悓鏉′歡鐨勯棶棰?鎴戜滑搴旇鐏墊椿搴旂敤,綺懼績閫夋嫨鍦伴夋嫨鍏朵腑杈冧負閫傚悎鐨勪竴涓?綆楁硶鍜屾暟鎹粨鏋勯兘鏄鐨?鑰岃繍鐢ㄥ畠浠殑浜?鎵嶆槸鐪熸鐨勪富瑙?瀵圭粡鍏哥殑綆楁硶鍜屾暟鎹粨鏋勭啛緇冩帉鎻″茍閫傚綋鍦拌繍鐢ㄤ互鍙戞尌瀹冧滑鏈澶х殑鍔涢噺,榪欐墠鏄俊鎭鐮旂┒鍜岀珵璧涗腑鏈澶х殑鏅烘収,涔熸槸淇℃伅瀛︾珵璧涚殑欖呭姏
鎵鍦?

KNIGHT 2009-05-28 19:53 鍙戣〃璇勮
]]>
鍒氬仛鐨凾Chttp://www.shnenglu.com/ACflying/archive/2009/05/28/85956.htmlKNIGHTKNIGHTWed, 27 May 2009 16:25:00 GMThttp://www.shnenglu.com/ACflying/archive/2009/05/28/85956.htmlhttp://www.shnenglu.com/ACflying/comments/85956.htmlhttp://www.shnenglu.com/ACflying/archive/2009/05/28/85956.html#Feedback1http://www.shnenglu.com/ACflying/comments/commentRss/85956.htmlhttp://www.shnenglu.com/ACflying/services/trackbacks/85956.html寤舵椂15鍒嗛挓鏈潵鏈瓙灝辨病鏈夌數銆傘傘傘傘傜幇鍦ㄨ繕娌℃瘮瀹屽氨鍓?000鍒嗙殑鏈瓙鎼炰笉浣忎簡銆傘傚啓涓嬫棩蹇楀氨宸笉澶歰ver浜?br />鏈夌偣鍥般傘傘傘傘?000鍒嗛鐩兘娌″績鎯呯湅浜?250鐨勯鏅曚簡 嫻垂浜嗗緢澶氭椂闂淬傘傘傘傘?00鐨勫掓槸寰堝揩鎺ㄥ嚭鏉ヤ簡 鍙儨 灝戞兂浜嗕竴縐嶆儏鍐典粠鏂版彁浜や簡涓嬈°傘傘傘傘傛檿
鐫¤浜嗐傘傘傘俽ating涔熸病鎬ф儏鐪嬩簡 姝e紡鐨勭涓嬈C宸笉澶氳兘澶熺豢浜嗗惂銆傘傘傘傚簲璇ヨ兘澶熴傘傘?br />鐫¤浜?img src ="http://www.shnenglu.com/ACflying/aggbug/85956.html" width = "1" height = "1" />

KNIGHT 2009-05-28 00:25 鍙戣〃璇勮
]]>
鐪佽禌鍛婁竴孌佃惤http://www.shnenglu.com/ACflying/archive/2009/05/26/85807.htmlKNIGHTKNIGHTTue, 26 May 2009 08:33:00 GMThttp://www.shnenglu.com/ACflying/archive/2009/05/26/85807.htmlhttp://www.shnenglu.com/ACflying/comments/85807.htmlhttp://www.shnenglu.com/ACflying/archive/2009/05/26/85807.html#Feedback0http://www.shnenglu.com/ACflying/comments/commentRss/85807.htmlhttp://www.shnenglu.com/ACflying/services/trackbacks/85807.html澶囨垬鍥涚渷璧涖傘傘備竴鍒囬兘娌℃湁鍙樸傘傘?br />灝卞xiaoz鎵璇達細AC鎵嶆槸鐜嬮亾銆?br />just do it銆俷o matter what happen銆侴o銆傦紒

KNIGHT 2009-05-26 16:33 鍙戣〃璇勮
]]>
鍚庡ぉ鐪佽禌浜?/title><link>http://www.shnenglu.com/ACflying/archive/2009/05/22/85470.html</link><dc:creator>KNIGHT</dc:creator><author>KNIGHT</author><pubDate>Fri, 22 May 2009 14:00:00 GMT</pubDate><guid>http://www.shnenglu.com/ACflying/archive/2009/05/22/85470.html</guid><wfw:comment>http://www.shnenglu.com/ACflying/comments/85470.html</wfw:comment><comments>http://www.shnenglu.com/ACflying/archive/2009/05/22/85470.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.shnenglu.com/ACflying/comments/commentRss/85470.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/ACflying/services/trackbacks/85470.html</trackback:ping><description><![CDATA[涓婂崍鐨勬椂鍊欐墦鍗頒簡涓浜涙ā鏉褲傘傘傘備富瑕佹槸涓浜涚被浼煎ぇ鏁存暟榪愮畻鐨勫父鐢ㄧ畻娉曪紝<br />鐢變簬鏄ㄥぉ鐫″緱鏅氫簡浜涗粖澶╂棭涓?鐐瑰氨璧鋒潵鎵撴壂瀵濆錛岃浠涔堥槻姝㈢尓嫻佹劅鍋氬瘽瀹ゆ鏌ワ紝涓崍鎯沖洖瀹胯垗鐫′竴瑙変篃娌$潯錛屽氨鍦ㄥ疄楠屽WS錛?br />鏅氫笂鐨勬椂鍊欎粠澶寸炕QQ鏃ュ織錛屾劅瑙夋湁鐐規偛浼ょ殑姘旀皼灝辯炕浜嗕竴綃囧垹涓綃囷紝緇撴灉194綃囧垹瀹屻傘傘備粠姝ゅ湪榪欎釜Blog鍐欎笢瑗跨渷璧涘仛瀹屼箣鍚庡敖蹇揪鍒?00錛屽皝鍙鳳紒涔嬪悗瀹岀編鐨勫仛TC銆?br />聽聽聽鍚庡ぉ鐪佽禌浜嗭紝鎴栬呰瑕佽宸ュぇ鐨勪紬紲炵墰铏愪簡錛屽湪榪欓噷Bless Every Hrbeu鈥榮 Acmers鍙栧緱濂芥垚緇╋紒<img src ="http://www.shnenglu.com/ACflying/aggbug/85470.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/ACflying/" target="_blank">KNIGHT</a> 2009-05-22 22:00 <a href="http://www.shnenglu.com/ACflying/archive/2009/05/22/85470.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item></channel></rss> <a href="http://www.shnenglu.com/">青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品</a> <div style="position:fixed;left:-9000px;top:-9000px;"><font id="pjuwb"></font><button id="pjuwb"><pre id="pjuwb"></pre></button><sub id="pjuwb"></sub><tbody id="pjuwb"><var id="pjuwb"><address id="pjuwb"></address></var></tbody><listing id="pjuwb"><label id="pjuwb"><strong id="pjuwb"></strong></label></listing><wbr id="pjuwb"><small id="pjuwb"><tbody id="pjuwb"></tbody></small></wbr><ins id="pjuwb"><xmp id="pjuwb"></xmp></ins><style id="pjuwb"></style><label id="pjuwb"><em id="pjuwb"><li id="pjuwb"></li></em></label><samp id="pjuwb"></samp><menu id="pjuwb"><input id="pjuwb"></input></menu><pre id="pjuwb"><tbody id="pjuwb"><tfoot id="pjuwb"><button id="pjuwb"></button></tfoot></tbody></pre><form id="pjuwb"></form><i id="pjuwb"><style id="pjuwb"><label id="pjuwb"><sup id="pjuwb"></sup></label></style></i><li id="pjuwb"><table id="pjuwb"><abbr id="pjuwb"></abbr></table></li><video id="pjuwb"></video><dfn id="pjuwb"></dfn><progress id="pjuwb"></progress><strong id="pjuwb"></strong><mark id="pjuwb"></mark><em id="pjuwb"></em><tbody id="pjuwb"><p id="pjuwb"><strike id="pjuwb"><acronym id="pjuwb"></acronym></strike></p></tbody><option id="pjuwb"></option><strike id="pjuwb"></strike><u id="pjuwb"></u><td id="pjuwb"><center id="pjuwb"><tr id="pjuwb"></tr></center></td><em id="pjuwb"><mark id="pjuwb"><em id="pjuwb"><tt id="pjuwb"></tt></em></mark></em><strong id="pjuwb"></strong><wbr id="pjuwb"></wbr><s id="pjuwb"></s><strong id="pjuwb"></strong><legend id="pjuwb"></legend><nav id="pjuwb"></nav><dl id="pjuwb"><th id="pjuwb"><dl id="pjuwb"></dl></th></dl><noframes id="pjuwb"><ins id="pjuwb"></ins></noframes><font id="pjuwb"></font><strike id="pjuwb"><i id="pjuwb"><style id="pjuwb"><label id="pjuwb"></label></style></i></strike><output id="pjuwb"></output><thead id="pjuwb"><pre id="pjuwb"></pre></thead><source id="pjuwb"></source><menuitem id="pjuwb"><wbr id="pjuwb"></wbr></menuitem><pre id="pjuwb"><span id="pjuwb"><pre id="pjuwb"><big id="pjuwb"></big></pre></span></pre><cite id="pjuwb"><fieldset id="pjuwb"><s id="pjuwb"><rt id="pjuwb"></rt></s></fieldset></cite><big id="pjuwb"><progress id="pjuwb"><big id="pjuwb"></big></progress></big><samp id="pjuwb"><delect id="pjuwb"></delect></samp><dl id="pjuwb"></dl><strike id="pjuwb"><nav id="pjuwb"><dl id="pjuwb"><strong id="pjuwb"></strong></dl></nav></strike><tbody id="pjuwb"><b id="pjuwb"><optgroup id="pjuwb"><rp id="pjuwb"></rp></optgroup></b></tbody><em id="pjuwb"></em><xmp id="pjuwb"><blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote></xmp> <i id="pjuwb"><abbr id="pjuwb"><i id="pjuwb"><abbr id="pjuwb"></abbr></i></abbr></i><center id="pjuwb"><acronym id="pjuwb"><center id="pjuwb"></center></acronym></center><pre id="pjuwb"></pre><ul id="pjuwb"><thead id="pjuwb"></thead></ul><blockquote id="pjuwb"><pre id="pjuwb"><sup id="pjuwb"></sup></pre></blockquote><acronym id="pjuwb"></acronym><big id="pjuwb"><s id="pjuwb"></s></big><th id="pjuwb"></th><th id="pjuwb"></th><tbody id="pjuwb"></tbody><thead id="pjuwb"><strike id="pjuwb"></strike></thead><th id="pjuwb"><dl id="pjuwb"><wbr id="pjuwb"></wbr></dl></th><dl id="pjuwb"><strong id="pjuwb"></strong></dl><abbr id="pjuwb"><noframes id="pjuwb"><noscript id="pjuwb"></noscript></noframes></abbr><td id="pjuwb"><ol id="pjuwb"></ol></td><li id="pjuwb"><noscript id="pjuwb"><abbr id="pjuwb"></abbr></noscript></li><small id="pjuwb"><bdo id="pjuwb"><nav id="pjuwb"></nav></bdo></small><style id="pjuwb"></style><optgroup id="pjuwb"><table id="pjuwb"></table></optgroup><center id="pjuwb"><tr id="pjuwb"><dfn id="pjuwb"></dfn></tr></center><th id="pjuwb"></th><u id="pjuwb"></u><tfoot id="pjuwb"><legend id="pjuwb"><i id="pjuwb"></i></legend></tfoot><mark id="pjuwb"></mark><meter id="pjuwb"></meter><nav id="pjuwb"></nav><acronym id="pjuwb"><pre id="pjuwb"><acronym id="pjuwb"><ul id="pjuwb"></ul></acronym></pre></acronym><acronym id="pjuwb"><pre id="pjuwb"><acronym id="pjuwb"><ul id="pjuwb"></ul></acronym></pre></acronym><nobr id="pjuwb"></nobr><sub id="pjuwb"><th id="pjuwb"><menuitem id="pjuwb"><wbr id="pjuwb"></wbr></menuitem></th></sub><thead id="pjuwb"><sub id="pjuwb"></sub></thead><ul id="pjuwb"><address id="pjuwb"><menuitem id="pjuwb"><meter id="pjuwb"></meter></menuitem></address></ul><dfn id="pjuwb"></dfn><pre id="pjuwb"></pre><input id="pjuwb"><cite id="pjuwb"><fieldset id="pjuwb"></fieldset></cite></input><u id="pjuwb"><form id="pjuwb"><u id="pjuwb"></u></form></u><kbd id="pjuwb"><em id="pjuwb"><mark id="pjuwb"></mark></em></kbd><tr id="pjuwb"></tr><del id="pjuwb"><form id="pjuwb"><address id="pjuwb"></address></form></del><tfoot id="pjuwb"><legend id="pjuwb"><ol id="pjuwb"><dl id="pjuwb"></dl></ol></legend></tfoot><menu id="pjuwb"><nobr id="pjuwb"><th id="pjuwb"><nobr id="pjuwb"></nobr></th></nobr></menu><fieldset id="pjuwb"></fieldset><pre id="pjuwb"><blockquote id="pjuwb"><samp id="pjuwb"></samp></blockquote></pre><xmp id="pjuwb"><sup id="pjuwb"><pre id="pjuwb"></pre></sup></xmp><span id="pjuwb"><progress id="pjuwb"></progress></span><font id="pjuwb"></font><var id="pjuwb"><abbr id="pjuwb"></abbr></var><strong id="pjuwb"><label id="pjuwb"><i id="pjuwb"><legend id="pjuwb"></legend></i></label></strong><tr id="pjuwb"><em id="pjuwb"><em id="pjuwb"><output id="pjuwb"></output></em></em></tr><thead id="pjuwb"><strike id="pjuwb"></strike></thead> <acronym id="pjuwb"></acronym><i id="pjuwb"></i><tt id="pjuwb"></tt><rt id="pjuwb"><source id="pjuwb"><rt id="pjuwb"></rt></source></rt><strike id="pjuwb"><acronym id="pjuwb"></acronym></strike><del id="pjuwb"></del><font id="pjuwb"><output id="pjuwb"><ins id="pjuwb"><output id="pjuwb"></output></ins></output></font><kbd id="pjuwb"><tr id="pjuwb"><kbd id="pjuwb"></kbd></tr></kbd><pre id="pjuwb"><sup id="pjuwb"><delect id="pjuwb"><samp id="pjuwb"></samp></delect></sup></pre><samp id="pjuwb"></samp><track id="pjuwb"></track><tr id="pjuwb"></tr><center id="pjuwb"></center><fieldset id="pjuwb"></fieldset><i id="pjuwb"></i><td id="pjuwb"></td><rt id="pjuwb"></rt><object id="pjuwb"></object><pre id="pjuwb"><progress id="pjuwb"><sub id="pjuwb"><thead id="pjuwb"></thead></sub></progress></pre><kbd id="pjuwb"><tr id="pjuwb"><option id="pjuwb"></option></tr></kbd><output id="pjuwb"><ins id="pjuwb"></ins></output><ol id="pjuwb"></ol><source id="pjuwb"></source><strong id="pjuwb"></strong><ruby id="pjuwb"></ruby><sub id="pjuwb"><meter id="pjuwb"><menuitem id="pjuwb"><meter id="pjuwb"></meter></menuitem></meter></sub><pre id="pjuwb"></pre><center id="pjuwb"></center><tr id="pjuwb"><tbody id="pjuwb"><xmp id="pjuwb"><dd id="pjuwb"></dd></xmp></tbody></tr><video id="pjuwb"></video><pre id="pjuwb"></pre><form id="pjuwb"><optgroup id="pjuwb"></optgroup></form><samp id="pjuwb"></samp><kbd id="pjuwb"></kbd><strong id="pjuwb"><option id="pjuwb"></option></strong><object id="pjuwb"></object><abbr id="pjuwb"><noframes id="pjuwb"><abbr id="pjuwb"></abbr></noframes></abbr><ul id="pjuwb"><del id="pjuwb"><button id="pjuwb"><pre id="pjuwb"></pre></button></del></ul><abbr id="pjuwb"></abbr><strong id="pjuwb"><code id="pjuwb"><strong id="pjuwb"></strong></code></strong><option id="pjuwb"></option><optgroup id="pjuwb"><bdo id="pjuwb"><code id="pjuwb"></code></bdo></optgroup><mark id="pjuwb"><em id="pjuwb"><font id="pjuwb"></font></em></mark><acronym id="pjuwb"><code id="pjuwb"></code></acronym><dl id="pjuwb"></dl><em id="pjuwb"></em><object id="pjuwb"><input id="pjuwb"><object id="pjuwb"></object></input></object><output id="pjuwb"><dd id="pjuwb"></dd></output><option id="pjuwb"><button id="pjuwb"><option id="pjuwb"></option></button></option><small id="pjuwb"></small></div> <a href="http://830085.com" target="_blank">欧美一区2区三区4区公司二百</a>| <a href="http://1188188.com" target="_blank">怡红院av一区二区三区</a>| <a href="http://zqx186.com" target="_blank">一区二区免费在线观看</a>| <a href="http://by99969.com" target="_blank">欧美日韩亚洲高清</a>| <a href="http://hkjccc.com" target="_blank">亚洲欧美日韩视频一区</a>| <a href="http://mauhorng.com" target="_blank">欧美激情精品久久久久久免费印度</a>| <a href="http://www-94889.com" target="_blank">亚洲免费电影在线</a>| <a href="http://qiansemf.com" target="_blank">国产一区二区中文字幕免费看</a>| <a href="http://www492002.com" target="_blank">久久先锋影音</a>| <a href="http://avjj80.com" target="_blank">中文日韩在线</a>| <a href="http://cnbluebox.com" target="_blank">亚洲国产精品一区二区www在线</a>| <a href="http://dmzjz.com" target="_blank">老司机67194精品线观看</a>| <a href="http://yw-95588.com" target="_blank">亚洲精品乱码久久久久久黑人 </a>| <a href="http://wwwn94.com" target="_blank">欧美国产高潮xxxx1819</a>| <a href="http://www-37277.com" target="_blank">亚洲一卡久久</a>| <a href="http://xjj733.com" target="_blank">亚洲精品少妇网址</a>| <a href="http://www-442336.com" target="_blank">精东粉嫩av免费一区二区三区</a>| <a href="http://631537.com" target="_blank">亚洲黄页一区</a>| <a href="http://m10669.com" target="_blank">欧美成人精品在线播放</a>| <a href="http://226671.com" target="_blank">亚洲视频高清</a>| <a href="http://qiezi2vip.com" target="_blank">欧美一区二区在线观看</a>| <a href="http://zhongqingshiye.com" target="_blank">一本色道久久综合亚洲精品不卡 </a>| <a href="http://hjaa7.com" target="_blank">欧美成人综合一区</a>| <a href="http://wxtarena.com" target="_blank">欧美四级电影网站</a>| <a href="http://236fff.com" target="_blank">欧美日韩久久精品</a>| <a href="http://rezel-zj.com" target="_blank">国产精品自拍网站</a>| <a href="http://cp88966.com" target="_blank">国产精品久久久久一区</a>| <a href="http://080177.com" target="_blank">欧美午夜视频在线</a>| <a href="http://592xyy.com" target="_blank">欧美网站在线观看</a>| <a href="http://caofujia.com" target="_blank">在线成人国产</a>| <a href="http://899gh.com" target="_blank">欧美一区二区三区男人的天堂</a>| <a href="http://www-24333.com" target="_blank">你懂的视频一区二区</a>| <a href="http://mom8888.com" target="_blank">男同欧美伦乱</a>| <a href="http://jxrisen.com" target="_blank">亚洲欧美成人一区二区三区</a>| <a href="http://qkspvip.com" target="_blank">欧美亚洲在线播放</a>| <a href="http://668www.com" target="_blank">欧美日韩亚洲综合在线</a>| <a href="http://nbpacking.com" target="_blank">影音先锋亚洲精品</a>| <a href="http://hmm47.com" target="_blank">欧美在线91</a>| <a href="http://www4848xx.com" target="_blank">一区二区三区欧美激情</a>| <a href="http://gx2020.com" target="_blank">免费的成人av</a>| <a href="http://667939.com" target="_blank">欧美日韩午夜视频在线观看</a>| <a href="http://ekuyun.com" target="_blank">国产一区二区三区的电影 </a>| <a href="http://wb2014.com" target="_blank">午夜免费电影一区在线观看</a>| <a href="http://4915w.com" target="_blank">亚洲午夜精品久久久久久app</a>| <a href="http://www9797abc.com" target="_blank">日韩视频一区二区在线观看 </a>| <a href="http://xiaocao-av.com" target="_blank">国产精品入口尤物</a>| <a href="http://023nszz.com" target="_blank">国产精品一级二级三级</a>| <a href="http://78gde.com" target="_blank">在线视频一区观看</a>| <a href="http://66gg6.com" target="_blank">亚洲精品一区在线观看香蕉</a>| <a href="http://lingshidu.com" target="_blank">9久草视频在线视频精品</a>| <a href="http://cnlbogs.com" target="_blank">一区二区不卡在线视频 午夜欧美不卡在 </a>| <a href="http://456kp.com" target="_blank">日韩亚洲精品电影</a>| <a href="http://605012.com" target="_blank">亚洲一区www</a>| <a href="http://cnbluebox.com" target="_blank">久久久精品日韩</a>| <a href="http://wwwlywbb.com" target="_blank">亚洲国产精品视频</a>| <a href="http://metagasa.com" target="_blank">亚洲宅男天堂在线观看无病毒</a>| <a href="http://www77577.com" target="_blank">模特精品裸拍一区</a>| <a href="http://erodasy.com" target="_blank">国产精品久久久久久久久久直播 </a>| <a href="http://japanjavbibi.com" target="_blank">激情视频一区</a>| <a href="http://yzsss.com" target="_blank">久久久噜噜噜久久人人看</a>| <a href="http://xjksrbh.com" target="_blank">可以看av的网站久久看</a>| <a href="http://wwwlywbb.com" target="_blank">亚洲国产成人午夜在线一区</a>| <a href="http://ewaygou.com" target="_blank">亚洲乱码国产乱码精品精天堂</a>| <a href="http://by3799.com" target="_blank">久久综合九色综合网站</a>| <a href="http://lymzdd.com" target="_blank">曰本成人黄色</a>| <a href="http://yc7878.com" target="_blank">欧美成人免费在线观看</a>| <a href="http://seqingdao.com" target="_blank">久久亚洲高清</a>| <a href="http://gdjuba.com" target="_blank">亚洲日韩中文字幕在线播放</a>| <a href="http://kedou09.com" target="_blank">欧美激情精品久久久久久大尺度</a>| <a href="http://metagasa.com" target="_blank">麻豆精品精品国产自在97香蕉</a>| <a href="http://xxx6688.com" target="_blank">悠悠资源网亚洲青</a>| <a href="http://cp3824.com" target="_blank">欧美国产一区二区在线观看</a>| <a href="http://123086.com" target="_blank">女人天堂亚洲aⅴ在线观看</a>| <a href="http://483187.com" target="_blank">亚洲国产精品日韩</a>| <a href="http://by1473.com" target="_blank">欧美影院精品一区</a>| <a href="http://66y3.com" target="_blank">欧美一区二区三区视频</a>| <a href="http://51duanxinmao.com" target="_blank">国产香蕉97碰碰久久人人</a>| <a href="http://www23sds.com" target="_blank">一本色道久久综合一区</a>| <a href="http://987kt.com" target="_blank">久久精品亚洲乱码伦伦中文</a>| <a href="http://ridenimbus.com" target="_blank">亚洲欧洲一区</a>| <a href="http://www278999.com" target="_blank">久久精品一区蜜桃臀影院</a>| <a href="http://whaylan.com" target="_blank">欧美日韩国产在线</a>| <a href="http://hhh699.com" target="_blank">亚洲国产精品欧美一二99</a>| <a href="http://cabenn.com" target="_blank">亚洲国产日韩精品</a>| <a href="http://viwasmart.com" target="_blank">欧美日韩国产一区</a>| <a href="http://sese699.com" target="_blank">欧美在线观看视频一区二区三区</a>| <a href="http://www-876810.com" target="_blank">欧美一区二区视频在线</a>| <a href="http://988tz.com" target="_blank">亚洲人成亚洲人成在线观看图片 </a>| <a href="http://848585.com" target="_blank">欧美日本亚洲视频</a>| <a href="http://91chaopron.com" target="_blank">亚洲二区在线视频</a>| <a href="http://xp1025.com" target="_blank">亚洲黄色在线</a>| <a href="http://jzsp87.com" target="_blank">国产亚洲欧美另类一区二区三区</a>| <a href="http://4449998.com" target="_blank">免播放器亚洲</a>| <a href="http://aotaotao.com" target="_blank">午夜一区不卡</a>| <a href="http://holotu.com" target="_blank">在线日本高清免费不卡</a>| <a href="http://yh-hy.com" target="_blank">久久精品免费观看</a>| <a href="http://hhh699.com" target="_blank">免费不卡在线观看av</a>| <a href="http://603445.com" target="_blank">亚洲午夜精品一区二区</a>| <a href="http://www34523.com" target="_blank">久久se精品一区二区</a>| <a href="http://yjjs20.com" target="_blank">国产性天天综合网</a>| <a href="http://123-sj.com" target="_blank">亚洲黄色在线观看</a>| <a href="http://writeingo.com" target="_blank">国产三级精品三级</a>| <a href="http://pansinobbs.com" target="_blank">亚洲国产一区在线</a>| <a href="http://xuanxuan88.com" target="_blank">国产婷婷精品</a>| <a href="http://poqsoft.com" target="_blank">99re这里只有精品6</a>| <a href="http://spyfaw.com" target="_blank">精品91免费</a>| <a href="http://xxxx90.com" target="_blank">亚洲已满18点击进入久久</a>| <a href="http://dracotek.com" target="_blank">国产精品视频在线观看</a>| <a href="http://hbsmhy.com" target="_blank">欧美18av</a>| <a href="http://xw4433.com" target="_blank">国产亚洲福利</a>| <a href="http://92xx00.com" target="_blank">亚洲精品午夜</a>| <a href="http://xianconnector.com" target="_blank">免费不卡在线观看</a>| <a href="http://shenshijuesheying.com" target="_blank">欧美日韩亚洲综合一区</a>| <a href="http://xiaobi13.com" target="_blank">免费国产一区二区</a>| <a href="http://cmtqd.com" target="_blank">国产精品主播</a>| <a href="http://03qt.com" target="_blank">一二三四社区欧美黄</a>| <a href="http://160160160.com" target="_blank">最新日韩av</a>| <a href="http://223zzz.com" target="_blank">久久午夜精品一区二区</a>| <a href="http://q731.com" target="_blank">欧美在线free</a>| <a href="http://sfrecq.com" target="_blank">国产精品久久国产愉拍</a>| <a href="http://di4see.com" target="_blank">欧美亚洲色图校园春色</a>| <a href="http://jybiotek.com" target="_blank">亚洲女人天堂成人av在线</a>| <a href="http://jnjpsm.com" target="_blank">亚洲精品国久久99热</a>| <a href="http://124909.com" target="_blank">久久久久久穴</a>| <a href="http://www-119049.com" target="_blank">99视频一区</a>| <a href="http://sishengnv.com" target="_blank">老司机67194精品线观看</a>| <a href="http://ydpszcn.com" target="_blank">久久久亚洲精品一区二区三区</a>| <a href="http://shnenglu.com" target="_blank">欧美天天视频</a>| <a href="http://26mmmm.com" target="_blank">日韩亚洲欧美高清</a>| <a href="http://583775.com" target="_blank">亚洲精品日韩精品</a>| <a href="http://cao2014.com" target="_blank">蜜桃av综合</a>| <a href="http://6567ya.com" target="_blank">欧美777四色影视在线</a>| <a href="http://8004006.com" target="_blank">国产在线观看91精品一区</a>| <a href="http://bby99.com" target="_blank">亚洲一区视频在线观看视频</a>| <a href="http://saobitv.com" target="_blank">亚洲午夜精品一区二区三区他趣 </a>| <a href="http://042225.com" target="_blank">欧美成人xxx</a>| <a href="http://hnluvlux.com" target="_blank">欧美成人精品</a>| <a href="http://jizz16.com" target="_blank">在线观看国产成人av片</a>| <a href="http://www633998.com" target="_blank">久久精品一区二区</a>| <a href="http://678255.com" target="_blank">免费在线看一区</a>| <a href="http://674446.com" target="_blank">在线免费精品视频</a>| <a href="http://dd8uau0ncu.com" target="_blank">另类天堂视频在线观看</a>| <a href="http://www90aaa.com" target="_blank">免费看的黄色欧美网站</a>| <a href="http://6w7y.com" target="_blank">亚洲国产欧美在线</a>| <a href="http://7v51.com" target="_blank">欧美大片一区二区三区</a>| <a href="http://81plas.com" target="_blank">亚洲精品社区</a>| <a href="http://yada-jg.com" target="_blank">亚洲永久网站</a>| <a href="http://topjavhd.com" target="_blank">久久亚洲精品网站</a>| <a href="http://kaijiepharm.com" target="_blank">久久综合精品一区</a>| <a href="http://cao2014.com" target="_blank">欧美日韩精品久久</a>| <a href="http://8x1080x.com" target="_blank">一本色道久久精品</a>| <a href="http://xss521.com" target="_blank">久久国产精品久久久久久电车</a>| <a href="http://99chiji1.com" target="_blank">国产亚洲欧美色</a>| <a href="http://yeedeli.com" target="_blank">久久综合久久久久88</a>| <a href="http://122332.com" target="_blank">亚洲韩国日本中文字幕</a>| <a href="http://136hao.com" target="_blank">亚洲视频一二</a>| <a href="http://666777v3.com" target="_blank">欧美成熟视频</a>| <a href="http://8p3c.com" target="_blank">一本不卡影院</a>| <a href="http://proenhub.com" target="_blank">欧美亚洲网站</a>| <a href="http://xingba999.com" target="_blank">国内综合精品午夜久久资源</a>| <a href="http://5757ff.com" target="_blank">aa级大片欧美三级</a>| <a href="http://zooxoft.com" target="_blank">午夜视频在线观看一区二区</a>| <a href="http://ggg4444.com" target="_blank">欧美国产视频在线</a>| <a href="http://2312138.com" target="_blank">美女国产精品</a>| <a href="http://www1126v.com" target="_blank">一本色道久久综合</a>| <a href="http://223533.com" target="_blank">国产手机视频精品</a>| <a href="http://www-33tt.com" target="_blank">久热精品视频在线观看</a>| <a href="http://18loutv.com" target="_blank">91久久精品美女</a>| <a href="http://811914.com" target="_blank">午夜精品福利视频</a>| <a href="http://www99mmnn.com" target="_blank">尤物yw午夜国产精品视频</a>| <a href="http://balqueen.com" target="_blank">欧美不卡视频一区发布</a>| <a href="http://6688zf.com" target="_blank">一区二区三区免费观看</a>| <a href="http://fyfsds.com" target="_blank">久久综合狠狠</a>| <a href="http://qhzyxcd.com" target="_blank">亚洲欧美日韩精品一区二区</a>| <a href="http://118936.com" target="_blank">欧美精品一区二区三区在线看午夜 </a>| <a href="http://6k7a.com" target="_blank">免费成人你懂的</a>| <a href="http://5177jy.com" target="_blank">一本大道久久精品懂色aⅴ</a>| <a href="http://bosengame.com" target="_blank">国产精品99免视看9</a>| <a href="http://333666333.com" target="_blank">久久精品一本</a>| <a href="http://580078.com" target="_blank">亚洲免费在线观看</a>| <a href="http://my1315.com" target="_blank">亚洲国产日韩精品</a>| <a href="http://qdpetlove.com" target="_blank">久久精品国产一区二区电影</a>| <a href="http://www-662553.com" target="_blank">亚洲三级毛片</a>| <a href="http://www33444.com" target="_blank">国产一区二区三区日韩欧美</a>| <a href="http://avicpharm.com" target="_blank">欧美日韩91</a>| <a href="http://hcbr365.com" target="_blank">久久综合婷婷</a>| <a href="http://ximaimicro.com" target="_blank">欧美在线网址</a>| <a href="http://789583.com" target="_blank">亚洲一区二区三区中文字幕</a>| <a href="http://gdvapar.com" target="_blank">欧美电影电视剧在线观看</a>| <a href="http://wwwmiya118.com" target="_blank">性8sex亚洲区入口</a>| <a href="http://sapronlee.com" target="_blank">一区二区日韩伦理片</a>| <a href="http://wwwbbb888999.com" target="_blank">黄色亚洲网站</a>| <a href="http://www49797.com" target="_blank">国产精品伊人日日</a>| <a href="http://www497171c.com" target="_blank">欧美日韩国产综合新一区</a>| <a href="http://qiaoka526.com" target="_blank">久久天天狠狠</a>| <a href="http://126900.com" target="_blank">久久激情综合</a>| <a href="http://bckxy.com" target="_blank">欧美成人免费在线观看</a>| <a href="http://neudlac.com" target="_blank">欧美一级午夜免费电影</a>| <a href="http://xiuxiu124.com" target="_blank">一区二区三区高清在线</a>| <a href="http://607032.com" target="_blank">亚洲国产专区校园欧美</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>