SPOJ 1811 LCS 字尾自動機

2022-04-06 20:37:45 字數 758 閱讀 5438

題意:

求兩個串的最大連續子串

乙個串建sam,另乙個串在上面跑

注意如果走了suffix link,sum需要更新為t[u].val+1

suffix link有點像失配吧,當前狀態s走不了了就到suffix link指向的狀態fa上去,fa是s的字尾所以是可行的,並且有更多走的機會

#include #include 

#include

#include

using

namespace

std;

const

int n=25e4+5

;int

n,m;

char

a[n],b[n];

struct

state

}t[n

<<1

];int

sz,root,last;

inline

int nw(int _)

void inisam()

void extend(int

c) }

last=np;

}int

ans;

void

solve()

//printf("u %d %d\n",u,sum);

} printf("%d

",ans);

}int

main()

SPOJ 1811 LCS 字尾自動機

題意 求兩個串的最大連續子串 乙個串建sam,另乙個串在上面跑 注意如果走了suffix link,sum需要更新為t u val 1 suffix link有點像失配吧,當前狀態s走不了了就到suffix link指向的狀態fa上去,fa是s的字尾所以是可行的,並且有更多走的機會 include ...

SPOJ1811 字尾自動機入門

題目鏈結 點我點我 題目描述 求兩個字串的最長公共子串的長度,字串長度小於等於5 105輸入格式 兩行即兩個字串 輸出格式 乙個整數,表示兩個字串的最長公共子串的長度 思路 字尾自動機裸題,入門的乙個好的講解 傳送門 感想 還是有一些地方不是很理解,特別是匹配的時候有點亂 關於step的問題 還有乙...

SPOJ1812 LCS2 字尾自動機

並沒有什麼想說的,但是要保持格式 w spoj lcs2傳送門 給出n個字串 n不超過10,每個串長不超過100000 求出這n個字串的最長公共子串 tip 子串是連續的,子串行是不連續的 輸入格式 一共n行,每行包含乙個字串 輸出格式 輸出一行乙個整數,表示最長公共子串 這是一道字尾自動姬的基礎應...