原创 [2019CCPC秦皇島] J MUV LUV EXTRA KMP

給出一個字符串,並且給出參數a,ba,ba,b。然後對於這個字符串的一個可以通過在後面增補字符而構成循環節的一個子串。它的長度爲lll,它的整個循環在當前串中出現的長度爲ppp,求最大的ap−blap-blap−bl。 事實上對於

原创 BZOJ2654 tree 二分+最小生成樹

給出N≤5e4,M≤1e5N\leq5e4,M\leq1e5N≤5e4,M≤1e5的無向連通圖,一些邊是白色,一些邊是黑色的。然後求問滿足恰好的KKK條邊是白色的最小生成樹的值是多少。 是有一個比較新奇的思路,有博主把這個稱爲凸優

原创 洛谷P3119 草鑑定Grass Cownoisseur 強連通分量+最長路

給出一個有向圖,然後從111號點出發,有一次可以逆行的機會,求最終走回到111號點一共走過的點數是多少。 顯然可以先把環上的點走完,所以先對原圖縮點,每個點的點權爲強連通分量的大小。然後考慮把圖分爲兩層,對上一層的點連反邊到下一層

原创 [2019CCPC秦皇島] G Game on Chessboard 狀壓dp

給出一個最大12×1212×1212×12的棋盤,然後棋盤上有黑色或者白色的棋子。每個棋子都有一個權值。現在你要把所有的棋子全部拿走,你有兩種取法:1.任意取走一個棋子,付出這個棋子權值的代價。2.取走一對棋子,付出兩個棋子權值差

原创 [2018ICPC焦作] H Can You Solve the Harder Problem? 後綴數組+線段樹

一句話題意:給出n≤1e5n\leq1e5n≤1e5個數,求所有本質不同的連續子序列最大值和。 如果沒有本質不同的條件限定:對於每個左端點iii,記錄fif_ifi​是iii作爲左端點答案。fi=ai(j−i)+fjf_i=a_i

原创 [2017HNCPC] Strange Optimization 簡單數論

給出正整數n,m≤1e9n,m\leq1e9n,m≤1e9,並且定義函數f(t)=min⁡i,j∈Z∣in−jm+t∣f(t)=\min_{i,j\in Z}|\frac{i}{n}-\frac{j}{m}+t|f(t)=mini

原创 2019ICPC南昌題解

B-A Funny Bipartite Graph 題意:給出每一邊的點數都不超過n≤18n\leq18n≤18的二分圖,對左邊的點標號iii從111到nnn,對右邊的點標號jjj從111到nnn,數據保證不會出現iii到jjj的

原创 洛谷P2245 星際導航 最小生成樹+lca

給出一個N≤1e5,M≤3e5N\leq1e5,M\leq3e5N≤1e5,M≤3e5的無向圖,無向圖的圖上有邊權。然後給出q≤1e5q\leq1e5q≤1e5次詢問,每次詢問給出兩個點u,vu,vu,v,求u,vu,vu,v路徑

原创 [2018HNCPC] G 排列 狀壓dp

給出n≤20n\leq20n≤20的數pip_ipi​以及mmm個二元組(ai,aj)(a_i,a_j)(ai​,aj​),然後要求重新排列這個數列,使得∑i=1m∣api−apj∣\sum_{i=1}^{m}|a_{p_i}-a

原创 [2019CCPC哈爾濱] B Binary Numbers dp

題意比較複雜。 給出m≤17m\leq17m≤17 表示我現在有[0,2m−1][0,2^{m}-1][0,2m−1]這樣的一個區間,然後現在有0≤N≤2m0\leq N \leq 2^{m}0≤N≤2m表示我將會把這個區間分爲N

原创 [2018HNCPC] H 千萬別用樹套樹 線段樹

給出q≤1e5q\leq1e5q≤1e5次操作,每次向集合SSS插入一個線段或者查詢對於當前線段,SSS中有多少個線段完全覆蓋它。保證端點最大值不超過1e51e51e5,並且被查詢的線段的長度最多爲222。 線段樹或者樹狀數組有多

原创 [2019CCPC哈爾濱] E Exchanging Gifts 拓撲排序

給出n≤1e6n\leq1e6n≤1e6個數字串,數字串的總和不會超過1e61e61e6,但是會有一個將兩個數字串連接的操作,總數字串的長度會比較大,最大會有1e181e181e18。然後求問你可以通過若干次交換,使得最多的數字自

原创 [洛谷P2992] 三角形計數 幾何

平面上給出n≤1e5n\leq1e5n≤1e5的點,然後求有多少個三角形滿足這個三角形包含原點(0,0)(0,0)(0,0)。 直接考慮包含原點的三角形比較難計算。考慮算不包含原點的三角形的個數,固定一個點,那麼所有不包含原點的三

原创 [2018HNCPC] J 買一送一 樹形dp

給出一個根爲111,n≤1e5n\leq1e5n≤1e5有點權的樹,定義每個結點f(i)f(i)f(i)爲從根結點到這個結點上任選兩個點u,vu,vu,v的點權構成的不同的<w(u),w(v)><w(u),w(v)><w(u),w

原创 [2019CCPC秦皇島] K MUV LUV UNLIMITED 樹上博弈

給出n≤1e6n\leq1e6n≤1e6的樹,然後兩個人玩博弈遊戲,每次可以選擇若干的葉子結點把它刪掉。 如果只有一條鏈的情形,取決於奇偶性。 如果某一條鏈的鏈底的父親有超過兩個兒子,那麼此時相當於可以改變一次奇偶性,所以這樣的狀