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

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 極限定律 閱讀(632) 評論(0)  編輯 收藏 引用 所屬分類: ACM/ICPC

<2009年5月>
262728293012
3456789
10111213141516
17181920212223
24252627282930
31123456

導航

統計

常用鏈接

留言簿(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>
            久久精品国产综合精品| 久久综合久久综合久久| 亚洲国产网站| 久久久综合精品| 悠悠资源网亚洲青| 欧美激情国产日韩| 欧美精品免费在线观看| 一本色道久久综合亚洲精品高清| 亚洲国产日韩欧美在线图片| 欧美久久99| 亚洲一区二区三区中文字幕在线 | 亚洲国内在线| 欧美国产日韩亚洲一区| 欧美久久精品午夜青青大伊人| av成人手机在线| 亚洲午夜精品久久| 精品999日本| 亚洲黑丝在线| 国产精品一区二区三区乱码| 久久免费国产精品1| 欧美国产精品劲爆| 性感少妇一区| 久久综合久久美利坚合众国| 一本久道久久综合中文字幕 | 久久精品亚洲一区| 久久人人精品| 亚洲一区二区在线免费观看| 久久av二区| 一区二区三区偷拍| 欧美资源在线| 亚洲视频久久| 久久国产天堂福利天堂| 一本色道88久久加勒比精品| 性欧美xxxx大乳国产app| 日韩一区二区精品视频| 欧美一二三区在线观看| av成人老司机| 久久久久久穴| 午夜视频一区| 欧美精品国产精品日韩精品| 久久久午夜精品| 欧美午夜寂寞影院| 亚洲国产成人午夜在线一区| 国产精品一区毛片| 亚洲精选在线| 亚洲国产日韩一区二区| 欧美一级黄色网| 亚洲一区影院| 欧美精品自拍偷拍动漫精品| 欧美r片在线| 国产视频一区免费看| 亚洲精品社区| 99国产精品久久| 狼人天天伊人久久| 久久一区亚洲| 国产一区二区三区的电影| 中文亚洲字幕| 亚洲亚洲精品三区日韩精品在线视频| 久久久久久亚洲精品不卡4k岛国| 欧美伊人久久| 国产精品日韩在线| 一本久久综合| 中日韩在线视频| 欧美日本精品在线| 亚洲毛片在线看| 日韩五码在线| 欧美日本一道本在线视频| 最新日韩在线视频| 日韩一区二区高清| 欧美精品一区在线| 亚洲精品视频一区| 一区二区三区四区蜜桃| 欧美三级电影大全| 亚洲视频一区二区| 久久成人精品| 国产午夜精品福利| 久久久久久久999精品视频| 噜噜噜躁狠狠躁狠狠精品视频| 国产一区在线看| 久久久欧美精品sm网站| 欧美黑人一区二区三区| 亚洲人成网站影音先锋播放| 欧美金8天国| 一区二区高清在线观看| 性欧美1819性猛交| 国产一区二区激情| 久久视频在线免费观看| 欧美激情一区二区在线 | 国产欧美一区二区三区沐欲| 午夜免费电影一区在线观看| 久久综合一区二区| 亚洲精品国产精品乱码不99| 欧美无乱码久久久免费午夜一区 | 久久久免费精品| 在线日韩中文字幕| 欧美久久久久久久久久| 亚洲无线一线二线三线区别av| 久久精品av麻豆的观看方式| 亚洲韩国青草视频| 欧美体内she精视频| 欧美在线免费视频| 91久久精品美女高潮| 欧美一区二区高清在线观看| 一区免费在线| 欧美午夜精品理论片a级按摩| 午夜日韩在线| 亚洲免费高清| 免费观看成人鲁鲁鲁鲁鲁视频| 99视频+国产日韩欧美| 国产一区亚洲| 国产精品豆花视频| 久久只有精品| 亚洲欧美精品| 日韩一二三区视频| 蜜桃av一区二区三区| 亚洲欧美日韩专区| 亚洲精品在线视频| 国内精品伊人久久久久av一坑| 欧美日韩性视频在线| 久久男人av资源网站| 午夜精品视频在线观看| 亚洲美女啪啪| 欧美激情一区二区| 久久亚洲综合| 欧美一区二区三区啪啪| 一区二区欧美日韩视频| 亚洲国产高潮在线观看| 国产一区二区三区久久久| 欧美日韩精品免费在线观看视频| 久久久99久久精品女同性| 亚洲影音一区| 亚洲性感美女99在线| 亚洲精品永久免费精品| 亚洲第一在线综合网站| 米奇777超碰欧美日韩亚洲| 久久精品一区二区三区中文字幕| 亚洲视频免费看| 夜夜嗨av一区二区三区中文字幕 | 亚洲午夜精品久久久久久浪潮| 亚洲第一搞黄网站| 国内精品免费午夜毛片| 国产一区二区三区高清在线观看 | 久久久91精品国产一区二区精品| 亚洲一区二区三区精品在线观看| 亚洲日本一区二区三区| 亚洲国产综合视频在线观看| 欧美福利视频一区| 欧美~级网站不卡| 欧美xart系列高清| 欧美顶级艳妇交换群宴| 欧美大色视频| 亚洲二区免费| 亚洲日本电影在线| 夜夜嗨av一区二区三区网页 | 久久精品欧美日韩| 久久久久久尹人网香蕉| 久热精品视频在线免费观看| 麻豆成人在线观看| 欧美成人亚洲成人日韩成人| 欧美高清在线| 亚洲精品综合| 亚洲欧美999| 久久精品论坛| 欧美xx69| 欧美日韩国产首页| 国产精品影视天天线| 国产在线不卡精品| 亚洲激情成人网| 这里只有精品丝袜| 欧美在线视频在线播放完整版免费观看| 欧美一区2区三区4区公司二百| 久久久久成人精品免费播放动漫| 久久五月婷婷丁香社区| 最新日韩中文字幕| 亚洲深爱激情| 久久久久久久久久久久久9999 | 亚洲视频在线免费观看| 欧美一级免费视频| 欧美激情视频一区二区三区在线播放| 欧美欧美天天天天操| 国产美女搞久久| 亚洲国产一区二区a毛片| 亚洲天堂av电影| 久久婷婷亚洲| 一本色道久久88亚洲综合88| 欧美在线一区二区| 欧美日韩理论| 伊人久久综合97精品| 亚洲私人黄色宅男| 欧美.日韩.国产.一区.二区| 一区二区三区高清在线| 久久综合网络一区二区| 国产精品久久一级| 亚洲九九精品| 老司机67194精品线观看| 一区二区三区四区五区精品| 久久这里只有精品视频首页| 国产乱子伦一区二区三区国色天香| 亚洲电影在线观看| 欧美在线网站|