一些題

Cheat

首先建出sam。
答案顯然具有單調性,考慮二分答案,可以通過dp來check。
\(f_{i}\)表示當前匹配到第i個字符,最大能夠匹配的字符數。
設二分的值爲\(k\),一個顯然的暴力是\(f_{i}=max(f_{j}+i-j+1)\)\(j\)\(i\)能夠匹配,\(i>=j-k\)。匹配的過程可以在廣義後綴自動機上實現。
但是這個過程複雜度過高,考慮優化。首先可以發現對於某個位置,向前能夠匹配的長度是一定的,可以預處理出來,在後綴自動機上跑,失配跳fa即可實現\(O(n)\)預處理。
再看,這個dp的轉移過程具有單調性,因此可以用單調隊列優化。
\(O(len*loglen)\)
你的名字

首先考慮68分暴力,對詢問串建出sam,能夠預處理出來每個位置能夠貢獻的本質不同子串數。將詢問串放在\(S\)的sam上跑,能夠處理出來每個位置匹配的最長長度,那麼這個位置對於答案的貢獻就是\(len_{x}-max(len_{fa},len_{匹配})\)
對於任意位置的詢問,與上面的區別是,匹配的過程變得無法繼續了。可以用可持久化線段樹合併預處理出每個sam上每個點的endpos集合,匹配過程中只要判斷當前節點是否存在特定區間的endpos就可以繼續完成匹配。
需要注意的是,在匹配的過程中,不能一旦失配就立刻跳fa,因爲當前匹配長度可能不存在合法的endpos,然而當前節點的另一長度可能合法,因此需要先\(len--\),直到長度達到父親節點的\(len\)才能跳。匹配仍然是線性的。
DZY Loves Math

化一化式子,發現最後只需要求這個東西:
\[g(x)=\sum\limits_{i|x} f(i)\mu(\frac{x}{i})\]
暴力求似乎(?)過不了,所以我們考慮線篩。
首先只有\(\mu(x)\)只有不含平方因子的時候不爲0,所以\(f(i)=f(x)\)\(f(i)=f(x)-1\)
考慮分情況討論:
\[\begin{aligned} g(x)&=\sum\limits_{i|x}f(i)\mu(\frac{x}{i})\\ &=f(x)\sum\limits_{i|x且f(i)=f(x)}\mu(\frac{x}{i})+(f(x)-1)\sum\limits_{i|x且f(i)==f(x)-1}\mu(\frac{x}{i})\\ &=f(x)\sum\limits_{i|x}\mu(\frac{x}{i})-\sum\limits_{i|x且f(i)==f(x)-1}\mu(\frac{x}{i})\\ \end{aligned} \]
可以發現,第一項全都是0,因此只需要考慮第二項。
\(x=\prod p_i^{c_i}\),將x的所有質因子分爲兩部分,一種是\(c_i=f(x)\)的,其他是另一種。
可以發現,如果存在第二種,那麼由於選第二種質因子時奇偶情況相同,\(g(x)=0\)
否則第一部分每個質因子的指數都要爲1才能滿足條件,那麼根據第一部分含有的質因子種數即可確定\(g(x)\)的取值。
hdu6363 bookshelf

記兩個結論:
\(gcd(fib_x,fib_y)=fib_{gcd(x,y)}\)
\(gcd(x^i-1,x^j-1)=x^{gcd(i,j)}-1\)
然後可以用擋板法算出貢獻,直接容斥即可。
DZY Loves Math IV
由於n很小,所以我們可以枚舉i,令\(S(n,m)=\sum\limits_{i=1}^{m}{\varphi(ni)}\)
一個結論,當i的質因子集合是j的子集時,有:\(\varphi(ij)=i\varphi(j)\)
考慮\(i=\prod p_i^{c_i}\),\(x=\prod p_i\),\(y=\frac ix\)
\[\begin{aligned} S(i,m)&=y*\sum\limits_{j=1}^{m}{\varphi(xj)}\\ &=y*\sum\limits_{j=1}^{m}\varphi(\frac {x}{gcd(x,j)})*\varphi(j)*gcd(x,j)\\ &=y*\sum\limits_{j=1}^{m}\varphi(\frac {x}{gcd(x,j)})*\varphi(j)*\sum\limits_{k|x且k|j}\varphi(k)\\ &=y*\sum\limits_{j=1}^{m}\varphi(j)\sum\limits_{k|x且k|j}\varphi(\frac {x}{k})\\ &=y*\sum\limits_{j|x}\varphi(\frac xj)\sum\limits_{k=1}^{\lfloor \frac mj \rfloor}\varphi(kj)\\ &=y*\sum\limits_{j|x}\varphi(\frac xj)S(j,\lfloor \frac mj \rfloor )\\ \end{aligned}\]
於是可以遞歸求解。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章