原创 [HNOI2016]序列【笛卡爾樹/單調棧+掃描線】

題目鏈接   對於一個數,它是位於pos位上的數的值,假設它左邊第一個比他小的數的位置+1是,假設它右邊第一個不大於它的數的位置-1是。那麼以pos這位數產生的貢獻可以考慮成。   如果我們將貢獻作爲二維平面上的話,我們可以更加清楚的看到

原创 Heat Pipes【2020 年 “遊族杯” H題】【圖的直徑】

題目鏈接   題意:給出一個N個點的圖,不保證圖的聯通(會wa2的),然後有M條無向邊,可以給每個點進行上色,要求的是每兩個相鄰的點的點權差值爲1,並且給出上色的權值範圍爲,要求每一種顏色都要用上。   所以解決的辦法就比較的顯而易見了,

原创 EOJ3745. 迷宮【二分答案+最大流】

題目鏈接   這裏的點和邊的個數都是比較小的,當然,不是說可以暴力了。可以用分層圖的方式來解決這題,就是,我們給每個點每個時間對應的流,假設ans時間可以完成最大流,於是就可以利用最大流再加上每個點到下一個點的時間來進行計算了,如果最大流

原创 Decay of Signals【2020 年 “遊族杯” D題】【樹形dp】

題目鏈接   這題有一個規律的東西,就是我們實際上只需要看1、2的鏈,譬如說有一個大於2權值爲k的點,如果它的周圍有權值爲1的點的話,那麼我們實際上沒有必要去選上k,只需要選1即可,因爲若是選上權值爲k的話,,那麼需要使得要取的值爲1的點

原创 [USACO18FEB]Snow Boots G【set】

題目鏈接 P4269 [USACO18FEB]Snow Boots G   我們可以按照離線的方式,先進行離散化,然後再看當每個高度的最少需要的距離由此判斷答案的可行性,於是可以用兩個set(其中一個得是multi)來進行維護。   一個

原创 旅遊規劃【換根dp求可能存在於樹的直徑上的點】

題目鏈接   題意:求N個點,序號從0~N-1的一棵樹,求可能存在於樹的直徑上的點,並將他們的座標升序輸出。   可以先利用樹形dp的方式求得樹的直徑,然後根據換根dp的方法,我們可以求得以每個點作爲中心時候的最遠到達的距離是多長,來判斷

原创 [BOI2003]Gem 氣墊車【貪心+DP】

題目鏈接 P4395 [BOI2003]Gem 氣墊車   很容易讓人往樹上最大獨立集的dp[maxN][2]這樣的做法去想,但是實際上是有錯的,很容易舉反例。 如果按照0、1分配最大獨立集的做法去解決這個問題,很顯然的就會變成偏大的結

原创 Even Degree【2020 年 “遊族杯”E題】【歐拉回路】

題目鏈接   題意:有N個點,M條邊,每次可以刪去一條兩端點的度不都是奇數的邊,問最多可以刪除幾條邊?題目保證初始所有點度爲偶數。   首先,題目保證了初始的時候所有的點的度都是爲偶數的,於是原圖中的每一個聯通塊一定是一個歐拉回路,對於歐

原创 骰子【概率dp】

題目鏈接 P1409 骰子   因爲會有人被彈出隊列,所以我設置的期望dp爲,表示當現在隊列中有i個人的時候,第j個人獲勝的概率。   於是有當只剩一個人的時候,那個人必勝,。   再往下,先看它在隊首的情況,也就是直接獲勝的概率加上它被

原创 [AHOI2009]最小割【最小割+Tarjan】

題目鏈接 P4126 [AHOI2009]最小割   將題目拆解成兩個問題,我們分別進行求解。 可以作爲最小割的邊   如果它可以是最小割中的邊的話,首先它需要滿足的是流過它的流是滿流的,這是因爲如果它被割去了,那麼一定是滿流的,否則

原创 寒假作業【主席樹】

題目鏈接 P2717 寒假作業   題目要求的是平均值不小於K的,那麼可以將問題變成,對所有的都減去K,然後求“權值和大於等於0”的子串的個數有多少個?   於是,我們可以求,以每個點作爲子串結尾的點時候的可能的子串的數量,這裏就可以用前

原创 Boring Class 【HDU - 5324】【cdq套cdq+SPFA輸出最長上升子序列】

題目鏈接   經典三維偏序,求這樣的一個最長上升子序列:,,,其中,id這個很容易被忽略掉。   然後我們可以直接用外層cdq套內層cdq的方式去解決這個問題了。   第一維的x直接用sort排序,這裏就不管了,接下去,第二維的y呢,我們

原创 [NOI Online #3 入門組 T3]買表【二進制優化dp揹包】

題目鏈接   很可惜的一點就是,我正賽的時候好像把a和k看反了,於是一直想不到如何做,打了個暴力分,現在想想,暴力分也錯了,因爲a和k真的很關鍵,使得最後300變成200分,人生第一場OI就這樣草草結束——或許這就是OI選手的刺激所在吧(

原创 Coronavirus Battle【CDQ套CDQ】【2020 年 “遊族杯” 全國高校程序設計網絡挑戰賽 C】

題目鏈接   題意:給出N個三維座標,輸入按照題意的這個給出: ull CoronavirusBeats() { ull k3 = k1, k4 = k2; k1 = k4; k3 ^= k3 << 23;

原创 Musical Theme 【POJ - 1743】【後綴數組+二分答案】

題目鏈接   有N(1<=N<=20000)個音符的序列來表示一首樂曲,每個音符都是1..88範圍內的整數,現在要找一個重複的子串,它需要滿足如下條件:1.長度至少爲5個音符。 2.在樂曲中重複出現(就是出現過至少兩次)。(可能經過轉調,