洛谷P3804 模板 字尾自動機

2021-08-20 18:38:23 字數 519 閱讀 7745

題意:求字串 s 中所有出現次數不為 1 的子串的出現次數乘上該子串長度的最大值。

方法:建立sam,令葉子節點 size 等於 1。按照拓撲序從下往上計數。個數大於1的就累計結果。

#include 

#include

#include

using

namespace

std;

#define n 1000010

#define ll long long

char str[n];

int n,m,last,rt,fa[n<<1],mx[n<<1],son[n<<1][26],size[n<<1],c[n<<1],a[n<<1];

ll ans=0;

inline

void ins(int ch)

}size[np]=1;

}int main()printf("%lld\n",ans);

return

0;}

洛谷P3804 模板 字尾自動機

題目大意 給乙個只包含小寫字母的字串 s 請求出 s 的所有出現次數不為 1 的子串的出現次數乘上該子串長度的最大值。題解 用字尾自動機求出每個字串的長度,排序後求出字串出現次數 字尾自動機是背板的。卡點 1.rnk 陣列沒有開兩倍 板背錯c code include include define ...

洛谷 P3804 字尾自動機

給定乙個只包含小寫字母的字串ss 請你求出 ss 的所有出現次數不為 11 的子串的出現次數乘上該子串長度的最大值。輸入格式 一行乙個僅包含小寫字母的字串ss 輸出格式 乙個整數,為 所求答案 輸入樣例 1 abab 輸出樣例 1 4 對於10 10 的資料,s 1000 s 1000 對於100 ...

洛谷P3804 模板 字尾自動機 SAM

給定乙個只包含小寫字母的字串 s 請你求出 s 的所有出現次數不為 1 的子串的出現次數乘上該子串長度的最大值。s leq 10 6 mathrm t cdots s x t 對於 mathrm t 相同的所有子串 t 我們把他們歸到乙個等價類中,然後對於每乙個等價類建立乙個節點。如果 mathrm...