傳送
這道題就是乙個sam的水題(所以這也是一篇很水的部落格)。
我們建完sam後,把每乙個串放上去跑就行了。因為題目要求字首匹配,所以一旦失配,就直接返回了。
#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;
#define enter puts("")
#define space putchar(' ')
#define mem(a, x) memset(a, x, sizeof(a))
#define in inline
#define fore(i, x, y) for(int i = head[x], y; ~i && (y = e[i].to); i = e[i].nxt)
typedef long long ll;
typedef double db;
const int inf = 0x3f3f3f3f;
const db eps = 1e-8;
const int maxn = 1e7 + 5;
const int maxs = 4;
in ll read()
in void write(ll x)
in void myfile()
int n, m, h[105];
char s[maxn];
struct sam
in void insert(int c)
}las = now;
} in int solve(char* s)
}s;int main()
return 0;
}
JSOI2012 玄武密碼 題解 AC自動機
顯然是ac自動機對吧 插入單詞之後把文章在自動機上跑一遍,到達過的節點打上花火標記 之後檢查一下每個單詞有幾個標記即可 可以把題目中的4個字母對映成abcd方便遍歷 include include include include using namespace std const int n 1e7...
BZOJ 4327 JSOI2012 玄武密碼
字尾自動機裸題。藉著這道裸題總結一下字尾自動機的查詢問題。1.查字首 查詢時不跳parent,遇到空節點就跳出。2.查子串 查詢時跳parent,記錄最大ans.3.查次數 lct維護right陣列 4.查不同的串的數目 在建樹時維護,乙個點對答案的貢獻為this max len this pare...
BZOJ4327 JSOI2012玄武密碼
description 在美麗的玄武湖畔,雞鳴寺邊,雞籠山前,有一塊富饒而秀美的土地,人們喚作進香河。相傳一日,一縷紫氣從天而至,只一瞬間便消失在了進香河中。老人們說,這是玄武神靈將天書藏匿在此。很多年後,人們終於在進香河地區發現了帶有玄武密碼的文字。更加神奇的是,這份帶有玄武密碼的文字,與玄武湖南...