原创 [bzoj2125]最短路——仙人掌,圓方樹

題目大意 求仙人掌上最短路. 思路 將仙人掌上的所有環給建立方點,所有環上的點作爲圓點連在方點上面. 考慮一個以1爲根的樹型結構,我們將所有環上的點和方點的距離設爲該點離環上深度最小的點的最小距離. 這樣利用樹上倍增來求解兩點之間

原创 bzoj4231回憶樹——AC自動機

bzoj4231 回憶樹 給定一顆Trie樹,每次詢問u到v的路徑上構成的字符串包含了給定模式串T多少次。 思路 考慮離線之後對於所有的模式串建立AC自動機,考慮跨過lca的串範圍有限,直接暴力kmp即可。 然後我們就將一次詢問拆

原创 喵星球上的點名——記一個用廣義SAM根號維護多串的技巧

喵星球的上的點名 給定一個字符串集合S,每次給定T詢問S中有多少個字符串中包含T,最後詢問S中的每一個字符串包含了多少次給定的T。 思路 考慮將這S個字符串建立廣義SAM,那麼我們每次將T放到廣義SAM中去匹配,最後匹配到的節點的

原创 NOI2013 樹的計數

NOI2013 樹的計數 給定一個dfs序和bfs序,求解符合這兩個條件的所有樹的平均樹高。 思路 如果我們能夠給bfs序中每一段區間分層,然後再去對應dfs序,不難發現可以唯一確定一棵樹,即在dfs的過程中,前後兩個節點的關係可

原创 拆係數FFT學習筆記

拆係數FFT學習筆記 拆係數FFT 當題目中取模的數不是NTT模數的時候,我們無法利用原根來進行快速數論變換,這個時候就要用到毛嘯論文裏提到的拆係數FFT。 大致思路 拆係數FFT實際上是將多項式卷積之後的值具體算出來,普通的FFT由

原创 HAOI2017 八縱八橫——線段樹分治+線性基

題目大意 給定一個圖,每次加一些邊,或者刪掉一些後來加上去的邊,定義一個環的價值爲環上所有的邊的異或和,重複走的邊重複算。每次詢問這個時刻圖中的所有經過1號點的環的最大價值。 思路 首先考慮對於一個靜態的圖如何求解圖中所有經過1號點的

原创 BJOI2018鏈上二次求和——線段樹

BJOI2018 鏈上二次求和 思路 [l,r]的限制可以拆成[1,l-1],[1,r],然後考慮推式子。 設sis_isi​爲aia_iai​的前綴和。 ans=∑i=1x∑j=insj−sj−i{\rm ans}=\sum_{i=

原创 [bzoj3514]Codechef MARCH14 GERALD07加強版——lct+主席樹

題目大意 給定一個圖,求編號在[l,r]之間的邊形成的圖的連通塊個數。 思路 考慮一條邊什麼時候會造成貢獻,即這條邊相連的兩個部分在之前從未連通過,或者是把所有編號小於l的邊去掉之後這兩個部分未連通。 對於第一種情況可以輕鬆地用並查集

原创 KD-Tree 學習筆記

KD-Tree 學習筆記 SDOI2010 捉迷藏 對於i=1…n,求曼哈頓距離距離i最近和最遠的點的距離分別是多少。 思路 KD-Tree 的模板題目。 KD-Tree,實際上就是對一個多維空間進行不斷的劃分,在一維上類似於二叉搜索

原创 SDOI2010 捉迷藏 —— KD-Tree

SDOI2010 捉迷藏 對於i=1…n,求曼哈頓距離距離i最近和最遠的點的距離分別是多少。 思路 KD-Tree 的模板題目。 KD-Tree,實際上就是對一個多維空間進行不斷的劃分,在一維上類似於二叉搜索樹。 如果是多維的,我們可

原创 HAOI2018染色——容斥

題目大意 loj 思路 設fif_ifi​表示至少出現了i種顏色的方案數 fi=(mi)×(s×i)!(s!)i×(ns×i)×(m−i)n−s×ifi=(mi)×n!(s!)i×(n−s×i)!×(m−i)n−s×i \begin{

原创 [BJWC2018]Border 的四種求法——SAM+線段樹合併+DSU+鏈分治

Border 的四種求法 給定一個串,q次詢問[l,r]的border長度。 思路 首先先對整個串建sam,然後我們對包含r的每一個狀態去計算。 設當前狀態的最大長度爲len,如果一個結束位置i是合法的,當且僅當l≤i<rl\l

原创 [uoj218]火車管理——主席樹

題目大意 維護一個棧,每次區間壓棧,單點彈棧,區間詢問棧頂的元素和。 思路 如果沒有彈棧的操作的話,我們每一次只需要在一顆線段樹上面區間賦值即可。 加上彈棧操作,我們每次就需要知道當前棧頂元素的上一個元素是什麼,考慮用主席樹來維護每一

原创 [loj2731]「JOISC 2016 Day 1」棋盤遊戲

題目大意 有一個3 × n的棋盤,你在上面玩遊戲。開始時,棋盤有一些格子上已經擺上了棋子,剩下的格子都是空的。每次你可以選擇一個空的格子擺上棋子,這個格子必須滿足以下兩個條件之一: 這個格子上下兩格都有棋子; 這個格子左右兩格都有棋

原创 「NOI2018」你的名字——後綴自動機

題目大意: 給定一個母串和若干個詢問串,求每個詢問串有多少個本質不同的子串沒有在母串中出現過。 思路: ION2017的串我們稱爲S串,ION2018的串我們稱爲T串。 先考慮68pts怎麼去做。 考慮T串有多少個子串未在S串中出現過