锘??xml version="1.0" encoding="utf-8" standalone="yes"?>久久精品亚洲日本波多野结衣,日本久久久久久中文字幕,久久av免费天堂小草播放http://www.shnenglu.com/suiaiguo/category/11163.html澶╄鍋ワ紝鍚涘瓙浠ヨ嚜寮轟笉鎭紱 鍦板娍鍧わ紝鍚涘瓙浠ュ帤寰瘋澆鐗?/description>zh-cnThu, 16 Jul 2009 11:24:13 GMTThu, 16 Jul 2009 11:24:13 GMT60KMP綆楁硶http://www.shnenglu.com/suiaiguo/archive/2009/07/16/90237.htmlSagaSagaThu, 16 Jul 2009 07:47:00 GMThttp://www.shnenglu.com/suiaiguo/archive/2009/07/16/90237.htmlhttp://www.shnenglu.com/suiaiguo/comments/90237.htmlhttp://www.shnenglu.com/suiaiguo/archive/2009/07/16/90237.html#Feedback1http://www.shnenglu.com/suiaiguo/comments/commentRss/90237.htmlhttp://www.shnenglu.com/suiaiguo/services/trackbacks/90237.html   KMP 鍖歸厤綆楁硶鏄敱 "Knuth  Morris  Pratt"  鎻愬嚭鐨勪竴縐嶅揩閫熺殑妯″紡鍖歸厤綆楁硶銆?nbsp; 
   hint錛氫笉涓鴻嚜韜殑鏈澶ч灝鵑噸澶嶅瓙涓查暱搴?/p>

   1.寰呰В鍐崇殑闂錛氬亣璁綪涓虹粰瀹氱殑瀛愪覆錛孴鏄緟鏌ユ壘鐨勫瓧絎︿覆錛岃姹備粠T涓壘鍑轟笌P鐩稿悓鐨勬墍鏈夊瓙涓詫紝榪欑О涓烘ā寮忓尮閰嶉棶棰樸?(鍙互緇欏嚭瀛愪覆鍦═涓殑浣嶇疆) (涓嬫枃涓彁鍒扮殑P鍜孴鍒嗗埆涓哄瓙涓插拰鐩爣涓?

   璁╂垜浠厛鏉ョ湅涓緥棰橈細

   T:   t0      t1     t2      t3 .... tm-1 ... tn-1

   P:   p0      p1     p2      p3 .....pm-1         

                                               

   浠嶵鐨勬渶宸﹁竟寮濮嬫瘮杈冿紝浣垮緱 TK = PK錛屽垯鍖歸厤鎴愬姛銆?

   2.瑙e喅妯″紡鍖歸厤闂鐨勬柟妗堬細

   A錛氭湸绱犵殑妯″紡鍖歸厤綆楁硶(鎬濊礬綆鍗?浣嗕笉澶熺畝渚匡紝鏃墮棿闀匡紝鏈夊洖婧?錛氭渶綆鍗曞拰鏈鐩存帴鐨勫仛娉曪紝鐢≒涓殑瀛楃渚濇涓嶵涓殑瀛楃榪涜姣旇緝錛岄亣鍒頒笉鐩哥瓑鐨勫瓧絎︼紝鍒欏彲灝哖鍙崇Щ涓涓瓧絎︼紝閲嶆柊榪涜姣旇緝錛岀洿鍒版煇嬈″尮閰嶆垚鍔熸垨鑰呭埌杈綪鐨勬渶鍙沖瓧絎︾Щ鍑篢涓烘銆?/p>

   濡傦細鑻="aaaba", T="aaabbaaaba", 鍒欏尮閰嶈繃紼嬪涓嬪浘

    T:     a   a   a   b   b   a   a   a   b  a

    P:     a   a   a   b   a                                                                

               a   a   a   b   a                

                                   .....

                               a   a   a   b  a           

   浠庝笂涓嶉毦鍒嗘瀽錛屾渶鍧忕殑鎯呭喌鏄?#8220;姣忔姣旇緝閮藉湪鏈鍚庝竴涓瓧絎﹀嚭鐜頒笉絳夛紝姣忚稛鏈澶氭瘮杈僊嬈★紝鏈澶氭瘮杈僋-M+1瓚燂紝鎬葷殑姣旇緝嬈℃暟鏈澶氫負M*(N-M+1)” 錛屾椂闂村鏉傛т負0(M*N)銆?鍦≒鍙崇Щ涓浣嶆椂錛屼笉綆′笂涓瓚熸瘮杈冪殑涓棿緇撴灉鏄粈涔堬紝鍥犳鍥炴函鏄笉鍙伩鍏嶇殑(濡傦細鍓?涓猘aa 涓嶉渶瑕佷竴浣嶄竴浣嶇殑縐?) 銆備笅闈㈡垜鏉ヤ粙緇嶆棤鍥炴函鐨凨MP綆楁硶銆?/p>

   3.KMP綆楁硶瑙e喅鍖歸厤涓摢浜涗富瑕侀棶棰橈細

   A.褰撳瓧絎︿覆姣旇緝鍑虹幇涓嶇瓑鏃訛紝紜畾涓嬩竴瓚熸瘮杈冨墠錛屽簲璇ュ皢P鍙崇Щ澶氬皯涓瓧絎︼紱 

   B. P鍙崇Щ鍚庯紝搴旇浠庡摢涓瓧絎﹀紑濮嬪拰T涓垰鎵嶆瘮杈冩椂涓嶇瓑鐨勯偅涓瓧絎︾戶緇紑濮嬫瘮杈冦?/p>

    鎴戜滑閫氳繃鏈寸礌妯″紡鍖歸厤鐨勪緥瀛愭潵寮曞嚭闂銆傚湪絎竴嬈℃瘮杈冭繃紼嬩腑澶辮觸鐨勬槸P鐨勭4涓瓧絎錛岃繖琛ㄦ槑P鐨勫墠4涓瓧絎︽槸鎴愬姛鐨勩傛ā寮廝鐨勭3涓瓧絎鍦ㄥ畠鐨勫墠3涓瓧絎?aaa)涓茍鏈嚭鐜般傚洜姝わ紝鍦ㄤ笅涓嬈℃瘮杈冩椂鍊欙紝鑷沖皯瑕佸皢P鍚戝悗縐?涓瓧絎︼紱鍐嶇湅P鐨勭涓涓瓧絎︿笌鏈鍚庝竴涓瓧絎︽槸鐩稿悓鐨勶紝鍥犳灝哖鍙崇Щ4涓瓧絎﹀悗錛屽啀浠庣涓涓瓧絎︽瘮杈冿紝鑲畾涔熸槸涓嶇瓑鐨勩傜患涓婃墍璇夛細搴旇灝哖鍙崇Щ5涓瓧絎︼紝鍐嶄粠P鐨勭0涓瓧絎﹀拰T鐨勭5涓瓧絎﹀紑濮嬫瘮杈冿紒

   KMP綆楁硶鏍稿績錛欿MP綆楁硶鍊熷姪浜庝竴涓緟鍔╂暟緇刵ext鏉ョ‘瀹氬綋鍖歸厤榪囩▼涓嚭鐜頒笉絳夋椂錛屾ā寮廝鍙崇Щ鐨勪綅緗拰寮濮嬫瘮杈冪殑浣嶇疆銆俷ext[i]鐨勫彇鍊煎彧涓庢ā寮廝鏈韓鐨勫墠i+1欏規湁鍏籌紝鑰屼笌鐩爣T鏃犲叧銆傚尮閰嶈繃紼嬩腑閬囧埌Pi涓嶇瓑浜嶵j鏃訛紝鑻ext[i]>=0錛屽垯搴斿皢P鍙崇Щi-next[i]浣嶄釜瀛楃錛岀敤P涓殑絎琻ext[i]涓瓧絎︿笌Tj 榪涜姣旇緝錛涜嫢錛歯ext[i]= -1錛孭涓殑浠諱綍瀛楃閮戒笉蹇呭啀涓嶵j姣旇緝錛岃屽簲灝哖鍙崇Щi+1涓瓧絎︼紝浠嶱0鍜孴j+1浠庢柊寮濮嬩笅涓杞瘮杈?鍙兘涓嶅お濂界悊瑙o紝鑷繁鎵句釜渚嬪瓙錛屽鐫璇濅竴鍙ヤ竴鍙ヨ瘯璇曠湅)

 

   鍥犳鍙璁$畻鍑轟笌妯″紡P鐩稿叧鐨刵ext鏁扮粍錛屾寜涓婇潰鐨勫惈涔夛紝灝卞彲浠ュ緢瀹規槗鍦扮粰鍑轟覆鐨勫尮閰嶇畻娉曘?闂灝辮繖鏍瘋漿鍖栦簡)

    C.next鐨勮綆楋細浠 = " 01001010100001"涓轟緥銆?/p>

     i   :            0   1   2   3   4   5   6    ..... 

     P   :            0   1   0   0   1   0   1    .....

    j(next[i]) :     -1   0   0   1   1   2   3    .....

   濡?錛氭垜浠綆梟ext[2]鐨勫?鏈夊叧鐨勪負P鏈韓鐨勫墠2涓瓧絎?,1銆傚湪瀛楃涓?1涓紝瀵繪壘鍑?#8220;宸﹀彸鐩稿悓鐨勬渶澶у瓧絎︿覆錛屾瀛楃涓叉墍鍚瓧絎︾殑涓暟灝變負next[i]鐨勫?#8221;鑰?涓嶇瓑浜?錛岀浉鍚屽瓧絎︿覆涓嶅瓨鍦紝鎵浠ext[i] = 0錛?/p>

   濡?錛氭垜浠綆梟ext[6]鐨勫鹼紝鏈夊叧鐨勪負P鏈韓鍓?涓瓧絎?10010 銆傛瀛楃涓蹭腑010 = 010宸﹀彸鐩稿悓鐨勬渶澶у瓧絎︿覆涓?10錛屼釜鏁頒負3銆傛墍浠ext[i]=3錛?/p>

   濡?錛氭垜浠綆梟ext[5]鐨勫鹼紝鏈夊叧鐨勪負P鏈韓鍓?涓瓧絎?1001銆傛瀛楃涓蹭腑 01=01 宸﹀彸鐩稿悓鐨勬渶澶у瓧絎︿覆涓?1錛屼釜鏁頒負2銆傛墍浠ext[i]=2錛?/p>

#include<stdio.h>
#include
<string.h>
#include
<stdlib.h>
FILE 
*fin=fopen("test.in","r");
FILE 
*fout=fopen("test.out","w");
char s1[200],s2[200];
int next[200];

int max(int a,int b)
{
    
if(a>b) return a;
    
return b;
}


void getnext()
{
    memset(next,
0,sizeof(next));
    
int i=-1,j=0;
    next[
0]=-1;
    
while(j<strlen(s2))
    
{
           
if(i==-1||s2[i]==s2[j]){
               i
++;  j++;  
               next[j]
=i;
           }

           
else i=next[i];
    }

}


int KMP()
{
    
int i=0,j=0,len1=strlen(s1),len2=strlen(s2);
    
while((i<len1)&&(j<len2))
    
{
        
if(j==-1||s1[i]==s2[j]) {j++;i++;}
        
else j=next[j];
    }

    
if(j==len2) return i-len2;
    
else return -1;
}


int index_KMP()
{
    
int i=0,j=0,len1=strlen(s1),len2=strlen(s2),re=0;
    
while(i<len1&&j<len2)
    
{
                         
if(j==-1||s1[i]==s2[j]) {i++;j++;}
                         
else j=next[j];
                         re
=max(re,j);
    }

    
return re;
}


int main()
{
    fscanf(fin,
"%s",s1);
    
for(int i=1;i<=3;i++)
    
{
            fscanf(fin,
"%s",s2);
            getnext();
            fprintf(fout,
"%d %d\n",KMP(),index_KMP());
    }

    
return 0;
}



Saga 2009-07-16 15:47 鍙戣〃璇勮
]]>
精品国产一区二区三区久久| 一级a性色生活片久久无| 亚洲AV无码久久精品色欲| 狠狠色丁香久久婷婷综合| 国产三级久久久精品麻豆三级| 2020久久精品国产免费| 久久国产精品一区| 香蕉久久av一区二区三区| 国产V亚洲V天堂无码久久久| 久久久久久久亚洲精品| 亚洲精品无码久久久久去q| 91性高湖久久久久| 99久久国产宗和精品1上映| 久久综合九色综合97_久久久| 亚洲国产精品嫩草影院久久| 久久国产热精品波多野结衣AV| 精品久久久久久无码中文字幕| 久久精品国产久精国产一老狼| 国产精品视频久久久| 久久久久久久女国产乱让韩| 国产69精品久久久久99| 性做久久久久久久| 伊人伊成久久人综合网777| 天天综合久久久网| 国内精品久久久久影院一蜜桃| 狠狠色丁香久久婷婷综合蜜芽五月| 一本伊大人香蕉久久网手机| 亚洲AV无码久久| 久久久久久国产精品无码下载| 91精品免费久久久久久久久| 久久精品中文字幕无码绿巨人| 99精品久久久久久久婷婷| 日本亚洲色大成网站WWW久久| 国产成人精品久久综合| 国产精品久久久久久久久| 亚洲AV无码久久精品成人| 久久久国产精华液| 久久久久久国产精品美女| 久久久国产亚洲精品| 国产免费久久精品99re丫y| 久久久久亚洲AV无码去区首|