原创 LOJ#2303. 「NOI2017」蚯蚓排隊 hash+鏈表
正常來說,單次操作的複雜度是 $O(k^2)$,然後整體複雜度是 $O(nk^2)$. 但是我們發現每次合併兩個蚯蚓的複雜度的極限是 $O( min(size_{min},50) \times 50)$. 然後根據啓發式合併的複雜度
原创 UOJ#523. 【美團杯2020】半前綴計數 後綴自動機
比較好的一道後綴自動機題. 先枚舉必選的前綴 $[1,k]$ 然後加上 $[k+1,n]$ 中本質不同子串個數. 但是這樣的話會算重. 考慮哪些地方算多了: 假設 $i-1$ 的前綴爲 $pre[i-1]$
原创 LuoguP6688 可重集 線段樹+hash
線段樹加 hash 判重模板題. hash 的話必須要用雙 base 哈希,否則會 WA. 然後這道題中最好不要用自然溢出,感覺比取模還要慢一些. 由於讀入量巨大,必須要開讀入優化才能過. 哈希的方式就是對於每個數維
原创 LuoguP6687 論如何玩轉 Excel 表格 樹狀數組
找規律+猜結論. 不難發現這個旋轉 180 度其實是對於一個 $2 \times 2$ 的正方形內部對角線分別交換. 所以對於這個 $2 \times n$ 的數組來說可以將所有格子分成兩類,這兩類互不干擾. 那麼判
原创 LOJ#6289. 花朵 樹鏈剖分+分治NTT
本來以爲這道題會非常難調,但是沒想到調了不到 5 分鐘就 A 了. 由於基於多項式的運算都可以方便地進行封裝,所以細節就不是很多(或者說幾乎沒有細節) 題意:給定一棵樹,每個點有點權,求對於所有大小爲 $m$ 的獨立集的點權之積的
原创 LOJ#3302. 「聯合省選 2020 A | B」信號傳遞 狀壓DP+卡常
對於 $x,y$ 如果 $x$ 在 $y$ 的左面那麼 $x \rightarrow y$ 的貢獻是 $pos[y]-pos[x]$ $y \rightarrow x$ 的貢獻是 $pos[x] \times k+pos[y] \tim
原创 LuoguP4931 [MtOI2018]情侶?給我燒了!(加強版) 組合
不妨枚舉哪些位置和睦,然後計算其他位置都不和睦的方案數. 令 $f[i]$ 表示 $i$ 對情侶都不和睦的方案數. 然後 $f[i]$ 的轉移和錯位排列比較相似,即讓情侶 $(i,i')$ 與 $(x,y)$ 合併或者 $(x,x
原创 LOJ#2541. 「PKUWC2018」獵人殺 容斥+分治NTT
真——分治NTT code: #include <cstdio> #include <vector> #include <cstring> #include <algorithm> #define N 100009
原创 LOJ#2540. 「PKUWC2018」隨機算法 狀壓DP+組合
令 $f[S]$ 表示所選的排列可以生成出 $S$ 的最大獨立集且點集 $S$ 全部在序列中的方案數. 那麼我們選一個沒有被覆蓋的點 $j$,令 $sta[j]$ 表示 $j$ 及 $j$ 覆蓋的點集. 那麼有 $f[S|sta
原创 LOJ#3120. 珍珠 容斥+生成函數+NTT
神仙多項式可還行. code: #include <cstdio> #include <vector> #include <cstring> #include <algorithm> #define N 100009
原创 LuoguP5349 冪 分治NTT
比較神仙的推導. 求 $\sum_{n=0}^{ \infty }s(n)r^n$,其中 $s(x)$ 是一個 $m$ 次多項式,$0\leqslant r \leqslant 1$ 顯然可以 $s(x)$ 每一個係數的貢獻,那麼就
原创 LOJ#575. 「LibreOJ NOI Round #2」不等關係 容斥+分治NTT
容斥+分治NTT. 令 $dp[i]$ 表示以 $i$ 結尾的方案數. 如果只有小於號的話 $dp[i]$ 是非常好求的:$\frac{n!}{\prod a_{i}}$ 即總階乘除以每一個小於號連續段. 有大於號的時候
原创 LOJ#6247. 九個太陽 單位根反演
複習一下單位根反演: $[k|n]=\frac{1}{k} \sum_{i=0}^{k-1} w_{k}^{ni}$,即 $[n \% k=0]$ 最前面那個 $\frac{1}{k}$ 不要忘記,也不要寫錯!!! 當 $n$ 很大
原创 LOJ#6261. 一個人的高三樓 組合+NTT
令 $f(i,j)$ 表示 $j$ 的 $i$ 階前綴和. 那麼有 $f(i,j)=\sum_{j=1}^{i} f(i-1,j)$,這個可以直接多項式快速冪. 時間複雜度是 $O(n \log^2 n)$ 或 $O(n \log
原创 LOJ#6198. 謝特 SAM+啓發式合併+01trie
並不難的一道字符串題. 顯然後綴自動機上進行字典樹的啓發式合併. 但是一定注意,題中要求的是兩個後綴的 LCP 而不是兩個前綴的 LCP. 所以在構建後綴自動機的時候要從後向前構建. 剛開始從前向後構建 WA 了半天. 然