JSOI2012 玄武密碼

2022-05-09 10:21:12 字數 907 閱讀 5243

傳送

這道題就是乙個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 在美麗的玄武湖畔,雞鳴寺邊,雞籠山前,有一塊富饒而秀美的土地,人們喚作進香河。相傳一日,一縷紫氣從天而至,只一瞬間便消失在了進香河中。老人們說,這是玄武神靈將天書藏匿在此。很多年後,人們終於在進香河地區發現了帶有玄武密碼的文字。更加神奇的是,這份帶有玄武密碼的文字,與玄武湖南...