原创 反射弧(arcs) - 分塊 - 哈希表

題目大意:n個點排成一行,每個點有一個顏色C。問有多少a&lt;b&lt;a′&lt;b′a&lt;b&lt;a&#x27;&lt;b&#x27;a<b<a′<b′,使得Ca=Ca′,Cb=Cb′,Ca!=CbC_a=C_{a&#

原创 遊戲 - 博弈論 - 結論

題目大意:你有兩個序列{an}{bm}\{a_n\}\{b_m\}{an​}{bm​},以及兩個指針c,dc,dc,d,初始c=d=1c=d=1c=d=1。有兩個人,每次每個人可以選擇修改c和d中的恰好一個,或者結束遊戲,結果是a

原创 標記的連接圖 - dp

題目大意:對所有n個點的無向連通圖求1到2的最短路並求和,n≤400n\le400n≤400。 題解:首先轉化爲1到所有點都距離和,最後除以n-1。 然後一個直接dp是直接分層,這樣是四次的。 一個做法是你倒着去分層,這樣每次往前

原创 腦部進食 - 高斯消元

題目大意:有一張n個點的有向圖,每條邊有個字符,一開始在1,每次隨機一條出邊走過去,這樣經過的邊上的字符會形成一個字符串。給你兩個串s和t,問形成的字符串第一次包含s爲子串或者包含t爲子序列時,期望走了幾次或者判斷答案趨於無窮。n

原创 THUPC2019 & CTS2019 & APIO2019 遊記

THUPC 去之前勤學苦練了……端茶倒水。 練習賽零貢獻拿了本算導。 正式賽_rqy和zyb瘋狂帶飛,鄙人只寫了個J和L,然後那個L還被瘋狂卡常,最後還是請zyb幫忙寫了個鬆式基排。 最後發現是rk2,感覺自己這個交了四五發的L是

原创 SDOI2019 R2D1T3 世界地圖 - 最小生成樹 - kruskal重構樹 - 虛樹

這題在場上只有我一個人過感覺非常矇蔽這題不是送分嗎(逃) 聽Claris說原本這個題打算是橋計數然後要類似虛仙人掌(瑟瑟發抖) 總之考慮每次都是合併一個前綴和後綴,考慮類似於LCT維護MST的做法,每次加入一條邊,形成環了的話就把環上

原创 SDOI2019 Round2 遊記

R1和R2之間又去了廣州,然後最後得知myh兩天rk1第一天AK成gd隊長真心膜拜(正向奶成功(逃)) R2前幾天在家裏通過看數競(霧)想出了不少OI題(大霧) Day0 抽籤被分到了小房間,發現裏面有當時省前十的一半多(貌似),感覺

原创 道路 - 矩陣乘法 - 倍增

題目大意:給定一張圖GGG,求∑i=1kiTGi,T,∣G∣≤100,k≤109\sum_{i=1}^ki^TG^i,T,|G|\le100,k\le10^9∑i=1k​iTGi,T,∣G∣≤100,k≤109 題解: 一些顯然的做法

原创 「NOI2016」優秀的拆分 - SAM

一類處理字符串相交的好東西。 題目就是要對每個位置求一整個位置爲結尾/開頭的能寫成SS的串的數量。 除了一些麻煩的算法以外(比如在SAM上啓發式合併之類的),一個簡單的做法是枚舉S的長度,不妨設爲d,然後將原串每d個字符切開,發現SS

原创 Apple - 高斯消元 - 概率與期望

題目大意:有兩個變量x,y初始爲0,每次x=(x+1)%n或者y=(y+1)%m。問第一次變成x=X,y=Y時的期望步數。n,m≤100n,m\le100n,m≤100 題解:顯然直接列方程高消,可以將(n-1,m-1)看作0求(n-

原创 codechef Annual Parade - 費用流 - 二分

題目大意:總之就是要做最小路徑覆蓋,路徑只要不是長度大於1的環就要額外支付C的代價。多次給出C求答案。n≤250,m≤30000,q≤104n\le250,m\le30000,q\le10^4n≤250,m≤30000,q≤104 題

原创 函樹(hs) - 莫比烏斯反演 - 虛樹

題目大意:給一顆樹,求∑x,yφ(x×y)dist(x,y)\sum_{x,y}\varphi(x\times y)\text{dist}(x,y)∑x,y​φ(x×y)dist(x,y)。n≤105n\le10^5n≤105 題解:

原创 電梯 - dp - 單調隊列

題目大意:總之就是有個dp[n]=min⁡i=0n−1max⁡{dp,p[i]}+max⁡j=i+1nt[j]\text{dp}[n]=\min_{i=0}^{n-1} \max \{\text{dp},\text p[i]\}+\m

原创 LOJ 6494 LJJ 的字符串 - 後綴數組

題目大意:給一個串S,對S的所有前綴T求: 對所有滿足1≤i&lt;j≤i+len−1&lt;j+len−1≤∣T∣1\le i&lt;j\le i+len-1&lt;j+len-1\le|T|1≤i<j≤i+len−1<j+len−

原创 重複子串(string) - SAM - 啓發式合併 - 線段樹

題目大意:給一個字符串多次詢問一個子串s的權值。一個字符串的權值定義爲最長的出現了至少兩次的子串的長度。n,m≤105n,m\le10^5n,m≤105。 題解:考慮把串反過來,建SAM。顯然詢問要先二分一波。 那就是求對應下標在某個