BZOJ4516 Sdoi2016 生成魔咒

2022-03-17 15:29:33 字數 528 閱讀 5991

乙個初始為空的串,每次在末尾插入乙個字元,每次插入後問字串中本質不同的子串的個數。字元值域1e9。

字尾自動機

因為值域很大,所以改用map維護轉移的字元。

另外好像字尾陣列也可以做,加點什麼平衡樹也可以做,不過我這種方法應該**最好寫、最短(裡面有一些map的find、insert操作可以在訪問空節點的時候變快)。

#include#include#includeusing namespace std;

typedef long long ll;

const int maxn=200010;

ll ans;

int n,m,tot,lst;

struct sam

a[maxn];

int read()

void sam_insert(int c)

} ans+=a[u].len-a[a[u].fa].len;

}int main()

return 0;

}

bzoj4516 SDOI2016 生成魔咒

time limit 10 sec memory limit 128 mb submit 376 solved 232 submit status discuss 魔咒串由許多魔咒字元組成,魔咒字元可以用數字表示。例如可以將魔咒字元 1 2 拼湊起來形成乙個魔咒串 1,2 乙個魔咒串 s 的非空字串...

bzoj4516 Sdoi2016 生成魔咒

4516 sdoi2016 生成魔咒 time limit 10 sec memory limit 128 mb submit 575 solved 327 submit status discuss 魔咒串由許多魔咒字元組成,魔咒字元可以用數字表示。例如可以將魔咒字元 1 2 拼湊起來形成乙個魔咒...

bzoj 4516 Sdoi2016 生成魔咒

time limit 10 sec memory limit 128 mb submit 1026 solved 576 submit status discuss 魔咒串由許多魔咒字元組成,魔咒字元可以用數字表示。例如可以將魔咒字元 1 2 拼湊起來形成乙個魔咒串 1,2 乙個魔咒串 s 的非空字...