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

HDOJ 1841 Find the Shortest Common Superstring (最小公共父串)

Problem Description
The shortest common superstring of 2 strings S1 and S2 is a string S with the minimum number of characters which contains both S1 and S2 as a sequence of consecutive characters. For instance, the shortest common superstring of “alba” and “bacau” is “albacau”.
Given two strings composed of lowercase English characters, find the length of their shortest common superstring.
 

Input
The first line of input contains an integer number T, representing the number of test cases to follow. Each test case consists of 2 lines. The first of these lines contains the string S1 and the second line contains the string S2. Both of these strings contain at least 1 and at most 1.000.000 characters.
 

Output
For each of the T test cases, in the order given in the input, print one line containing the length of the shortest common superstring.
 

Sample Input
2
alba
bacau
resita
mures
 

Sample Output
7
8
   題目要求2個字符串的shortest common superstring,最小公共父串:使得str1和str2都包含在所求的superstring中,且該superstring的長度最小。設str1的長度為m,str2的長度為n,如果按照逐個位置匹配求公共部分的方法,時間復雜度為O(m*n)。題目中的n∈[1,1000000],顯然會TLE,必須降低時間復雜度,只能用KMP模式匹配算法來做了,時間復雜度O(m+n)。
   用KMP算法來求解時,分3種情況:
   ----str1與str2能完全匹配,長度為max{len1,len2},如banana,ban;
   ----str1與str2不能匹配,但是能找到公共部分,如字符串alba,bacau,公共部分ba長度為2;
   ----str1與str2不能匹配,且沒有公共部分,如asdf,ghjk。
 1 #include <iostream>
 2 
 3 #define max(a,b) (a>b?a:b)
 4 #define match(a,b) ((a)==(b))
 5 const int MAXN = 1000001;
 6 int fail[MAXN];
 7 char str[2][MAXN];
 8 
 9 int kmp_pat_match(char *str,int ls,int &i,char *pat,int lp,int &j){
10     fail[0]=-1,i=0,j;
11     for(j=1;j<lp;j++){
12         for(i=fail[j-1];i>=0 && !match(pat[i+1],pat[j]);i=fail[i]);
13         fail[j]=match(pat[i+1],pat[j])?i+1:-1;
14     }
15     for(i=j=0;i<ls&&j<lp;i++)
16         if(match(str[i],pat[j])) j++;
17         else if(j)
18             j=fail[j-1]+1,i--;
19     return j==lp?(i-lp):-1;
20 }
21 int main(){
22     int i,j,t,u,v,len1,len2,pos;
23     scanf("%d",&t),getchar();
24     while(t--){
25         gets(str[0]),gets(str[1]);
26         len1=strlen(str[0]),len2=strlen(str[1]);
27         u=0,pos=kmp_pat_match(str[0],len1,i,str[1],len2,j);
28         if(pos!=-1) u=len2;
29         else if(i==len1 && j>0 && match(str[0][len1-1],str[1][j-1])) u=j;
30         v=0,pos=kmp_pat_match(str[1],len2,i,str[0],len1,j);
31         if(pos!=-1) v=len1;
32         else if(i==len2 && j>0 && match(str[1][len2-1],str[0][j-1])) v=j;
33         printf("%d\n",len1+len2-max(u,v));
34     }
35     return 0;
36 }

posted on 2009-04-28 13:38 極限定律 閱讀(626) 評論(0)  編輯 收藏 引用 所屬分類: ACM/ICPC

<2009年4月>
2930311234
567891011
12131415161718
19202122232425
262728293012
3456789

導航

統計

常用鏈接

留言簿(10)

隨筆分類

隨筆檔案

友情鏈接

搜索

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            9色精品在线| 狠狠色狠狠色综合日日五| 一区二区三区欧美在线| 日韩亚洲视频| 亚洲午夜av电影| 亚洲综合欧美日韩| 欧美制服丝袜| 免费91麻豆精品国产自产在线观看| 嫩模写真一区二区三区三州| 欧美屁股在线| 国产日韩欧美一区二区三区在线观看| 国产一区在线看| 亚洲精品自在久久| 午夜宅男久久久| 欧美成人一区二区| 亚洲精品国产精品乱码不99 | 亚洲精品网站在线播放gif| 最新日韩在线| 先锋a资源在线看亚洲| 久热精品视频在线观看| 欧美日韩国产小视频在线观看| 国产精品久久999| 在线欧美不卡| 欧美亚洲网站| 欧美精品一区二区视频| 亚洲欧洲日产国码二区| 亚洲最新视频在线播放| 久久国产精品久久精品国产| 欧美高清在线| 国内外成人免费激情在线视频网站 | 一本色道久久| 欧美一区二区私人影院日本| 媚黑女一区二区| 国产精品初高中精品久久| 亚洲高清一区二| 久久精品导航| 亚洲一区免费网站| 欧美视频一区二区三区…| 91久久综合亚洲鲁鲁五月天| 久久国产精品99国产精| 中文一区字幕| 欧美v亚洲v综合ⅴ国产v| 国产精品羞羞答答| 亚洲一区二区精品在线观看| 久久影院午夜论| 亚洲一区二区三区精品在线| 欧美精品日韩一区| 亚洲大胆av| 久久久精品免费视频| 亚洲午夜精品一区二区| 欧美日韩国产色综合一二三四| 国产三区二区一区久久| 欧美一区二区精品| 亚洲午夜国产成人av电影男同| 欧美日韩大陆在线| avtt综合网| 日韩一区二区久久| 欧美日韩一区二区三区高清| 一区二区三区视频在线| 亚洲精品之草原avav久久| 欧美国产一区二区| 日韩一二三在线视频播| 亚洲精品在线视频观看| 欧美日韩免费一区二区三区视频| 99精品视频免费观看视频| 亚洲黑丝一区二区| 欧美日本韩国一区| 亚洲淫性视频| 校园春色国产精品| 禁久久精品乱码| 欧美成人一品| 欧美激情aⅴ一区二区三区| 一区二区av在线| 在线一区免费观看| 国产日韩一区二区三区在线播放| 久久九九精品| 欧美韩国在线| 亚洲欧美韩国| 久久精品一二三| 欧美女同在线视频| 欧美另类人妖| 免费成人黄色av| 日韩一级精品| 亚洲啪啪91| 国产精品久久久久久久久婷婷| 香蕉成人久久| 久久米奇亚洲| 亚洲天堂男人| 欧美中文字幕在线视频| 亚洲精品久久久久| 99re热精品| 国产亚洲二区| 亚洲国产另类精品专区| 国产精品一区久久| 亚洲国产精品激情在线观看| 国产精品久久久久久久久婷婷 | 亚洲美女精品成人在线视频| 国产精品一区二区女厕厕| 你懂的国产精品| 国产精品成人免费| 欧美高清视频| 国产欧美日韩视频一区二区三区 | 亚洲欧美综合| 亚洲激情网站| 欧美一区二区三区久久精品| 日韩视频免费在线观看| 久久黄色小说| 亚洲免费小视频| 欧美11—12娇小xxxx| 久久黄色影院| 国产精品黄色在线观看| 亚洲韩国一区二区三区| 国内精品久久久久影院优| 亚洲一区二区三区成人在线视频精品| 亚洲第一黄色| 久久精品首页| 久久久99免费视频| 国产伦精品一区二区三区高清版| 亚洲国产三级网| 亚洲高清视频在线观看| 久久精品国产久精国产一老狼| 亚洲欧美视频在线观看| 欧美日韩一区二区在线播放| 亚洲激情另类| 在线欧美日韩| 噜噜噜91成人网| 久久精品视频免费播放| 国产精品综合久久久| 亚洲午夜伦理| 午夜国产精品影院在线观看| 欧美三区美女| 一区二区三区|亚洲午夜| 一区二区三区成人| 欧美日韩黄色大片| av72成人在线| 午夜电影亚洲| 国产日本亚洲高清| 久久se精品一区二区| 久久一二三国产| 狠狠综合久久av一区二区老牛| 亚洲色图综合久久| 亚洲精品视频免费在线观看| 日韩亚洲一区在线播放| 欧美成人久久| 最新亚洲电影| 亚洲欧美日本另类| 国产麻豆精品视频| 久久精品一区四区| 欧美成人精品不卡视频在线观看 | 亚洲福利小视频| 欧美国产激情| 99国产精品| 久久不射中文字幕| 亚洲成人在线观看视频| 欧美电影免费| 一本色道久久综合亚洲精品小说| 性欧美大战久久久久久久久| 国产一区二区三区奇米久涩| 久久这里只精品最新地址| 亚洲国产综合91精品麻豆| 亚洲在线播放| 在线观看不卡av| 欧美精品在线播放| 亚洲免费一级电影| 欧美大片在线观看| 在线一区二区三区四区| 国产精品久久9| 久久青草福利网站| 夜夜夜精品看看| 久久亚洲精品一区| 中文av一区二区| 激情五月婷婷综合| 欧美美女福利视频| 久久国产免费看| 亚洲精品影视在线观看| 久久激情五月丁香伊人| 亚洲激情专区| 国产精品自拍网站| 欧美激情精品久久久久久| 亚洲视频一区在线| 免费在线一区二区| 亚洲欧美综合国产精品一区| 亚洲国产影院| 国产真实乱子伦精品视频| 欧美日韩在线精品一区二区三区| 久久精品一区蜜桃臀影院| 一区二区三区四区在线| 欧美成人在线免费观看| 欧美在线一二三区| 亚洲视频免费在线| 亚洲精品国精品久久99热| 国产主播一区二区| 国产精品专区一| 国产精品xnxxcom| 欧美激情亚洲| 美女脱光内衣内裤视频久久影院 | 久久精彩视频| 香蕉av777xxx色综合一区| 一区二区三区四区国产精品| 亚洲国产精品日韩|