題解 洛谷P5496 模板 回文自動機(PAM)

2021-09-26 23:26:25 字數 726 閱讀 8925

建立pam,當第i個字元插入後,就可以得到以i位置為結尾的回文子串個數 = fail樹上奇根到lst的節點個數(不包括奇根)。

即lst在fail樹上的祖先個數。

這個屬性可以在extend時維護,num[i] = num[fail[i]]+1.

/* littlefall : hello! */

#include

using

namespace std;

using ll =

long

long

;inline

intread()

;const

int m =

600016

, mod =

1000000007

;struct palindromeautomaton

intextend

(int c)

lst = ch[p]

[c];

return num[lst];}

}pam;

char str[m]

;int

main

(void

)return0;

}inline

intread()

while

(ch>=

'0'&&ch<=

'9')

return x*f;

}

P5496 模板 回文自動機(PAM)

題目背景 模板題,無背景 其實是我想不出背景 題目描述 給定乙個字串 s。保證每個字元為小寫字母。對於 s 的每個位置,請求出以該位置結尾的回文子串個數。這個字串被進行了加密,除了第乙個字元,其他字元都需要通過上乙個位置的答案來解密。具體地,若第 ii i 1 個位置的答案是 k,第 i 1 個字元...

《題解》洛谷P3385 模板 負環

題目鏈結 判斷一張圖中是否存在關於頂點1的負環 可以用spfa跑一遍,存在負環的情況就是點進隊大於n次 因為在存在負環的情況下,spfa會越跑越小,跑進死迴圈 在最差的情況下,存在的負環長度是 n 1個頂點 這麼長 顯然這是n個點長度,但不是環 這就是乙個環,n 1個點的長度 所以 很明了了,只需將...

洛谷 P3367 模板 並查集 題解

題目描述 如題,現在有乙個並查集,你需要完成合併和查詢操作。輸入輸出格式 輸入格式 第一行包含兩個整數n m,表示共有n個元素和m個操作。接下來m行,每行包含三個整數zi xi yi 當zi 1時,將xi與yi所在的集合合併 當zi 2時,輸出xi與yi是否在同一集合內,是的話輸出y 否則話輸出n ...