原创 NOIP2011 觀光公交 貪心+遞推

傳送門 60%數據:也許能用DP 100%數據:k範圍太大,不能DP 題解: 想一想貪心。如果只有一個加速器,我們肯定選乘坐人數最多的那條路。 擴展到m個加速器的情況,只需要每次選取乘坐人數最多的路,使用加速器更新答案,就行了。

原创 JLOI2014 松鼠的新家 LCA+樹上差分

傳送門 題解:很簡單,就是求樹上點的差分。把從a[i]到a[i+1]的路徑上的點覆蓋一次,記錄總覆蓋次數 點的差分和邊的差分略有不同,不過大體思路都是差不多的,邊的差分是在起點,終點tag+1,LCA處-2;而點的差分是起點,終

原创 NOIP2016 換教室 期望DP

傳送門 題解: 本蒟蒻第一次知道期望是啥意思。。很簡單,就是全部概率*價值求和 感覺期望差不多都和DP有關吧 設dp[i][j][0/1]dp[i][j][0/1]dp[i][j][0/1]表示選到第i節課,已經申請了換j節課,其

原创 NOI2016 區間 線段樹+離散化

傳送門 好久沒水線段樹題了。。。 NOI2016的簽到題,差不多就是個裸的線段樹。 離散化,建樹,維護最大值。 然後區間以長度排序,從小到大加入線段,若覆蓋次數達到m就更新答案,同時刪除最左邊的區間,並更新答案(因爲有些區間不覆蓋

原创 NOIP2012 疫情控制 貪心+二分+倍增

一道很全(du)面(liu)的題 題目大意:給定一棵樹,用最少的時間封住這棵樹。 題解: 首先可以很容易發現一個條件:軍隊在走的時候都要儘量往上走,但不到根節點。因爲越靠近根節點的點,控制的葉子節點越多。不過暴力是肯定會超時

原创 NOIP2012 開車旅行 倍增

題意:兩人輪流開車,求解一些問題(題目已經講得很清楚了) 題解: 首先預處理出每座城市的最近點和次近點(可以用雙向鏈表做,排序後從左到右依次找,找了之後就刪掉) 然後預處理倍增,注意這時的城市已經是排序過後的了,可以轉化成原來

原创 NOIP2014 解方程 數論+模擬

題目大意:求一個多項式方程在[1,m][1, m][1,m]的整數解。 題解:沒想到吧,這題竟然是暴力(溜 好吧也沒有那麼簡單 要用到一個算法:秦九韶算法,就是減少多項式的計算次數 然後暴力枚舉[1,m][1, m][1,m]就行

原创 NOIP2015 鬥地主 搜索+貪心

傳送門1——鬥地主普通版 傳送門2——鬥地主增強版,慎入 有點噁心,特別是增強版 題解:大爆搜,搜索出順子,貪心出散牌 據說加強版的標程都是貪心把除了順子之外的散牌通過拆牌,貪心一次出完的。。而我太菜,只會出對子和單牌233 最後

原创 NOIP2011 Mayan遊戲 搜索

傳送門 題解:爆搜+剪枝 要注意以下幾點: 向右搜時,若顏色一樣則不搜 向左搜時,若不是空格,則不搜(因爲此時它左邊的方塊已經向右搜索過了) 可以把搜索過程想象成一顆搜索樹,這樣只用開與這棵樹的深度成正比的狀態數組 DFS時先考

原创 CF474F Ant colony 線段樹

傳送門 又TM水了一道線段樹… 題意:求區間GCD及等於這個GCD的數有多少個。輸出區間長度-GCD數量 題解: 線段樹維護區間GCD,再維護區間GCD數量。 顯然當兩個區間合併時,新區間的GCD等於左右區間GCD的GCD,

原创 NOIP2016 蚯蚓 隊列+單調性優化

傳送門 努力刷完NOIP提高組題目ing… 50~60分算法:直接用堆/優先隊列模擬 100分算法:觀察題目,發現其中隱含的單調性。 設兩條蚯蚓長度爲a,ba,ba,b,其中a>ba > ba>b。 則aaa被切掉時長

原创 HNOI2009 夢幻布丁 啓發式合併+隊列

傳送門 題意:N個布丁擺成一行,進行M次操作.每次將某個顏色的布丁全部變成另一種顏色的,然後再詢問當前一共有多少段顏色。 題解:啓發式合併的神奇做法 把同種顏色的布丁排成一列,變色時接在那個顏色的隊列後面;同時要把短的隊列接在長

原创 SHOI2008 堵塞的交通 線段樹

傳送門 線段樹三連。 這是一道讓人誤解爲水題的線段樹題。 實則讓我想罵出題人出了這麼道大毒瘤。 題意:維護2*n的網格區域中點的連通性。 題解:線段樹維護連通性。 把上下兩個城市看作線段樹中的一個點 合併兩個區間時,只看這兩個區

原创 ZJOI2006 皇帝的煩惱 二分+DP

傳送門 初看題目,感覺就是道水題,判一下奇偶性就行 考完了才知道,浙江的題嘿嘿 結果最後模擬賽只拿了20。。。 題解: 二分答案,check的時候DP,設Max[i]Max[i] 爲第i個人最多和第1個人勳章相同的個數,Mi

原创 HNOI2009 有趣的數列 卡特蘭數

傳送門 題意:題目已經說的很清楚了吧 題解:打了個表發現是卡特蘭數。。太有趣了 把奇數項看成進棧,偶數項看成出棧,則題目轉化爲從左到右進棧出棧,且進棧數大於出棧數。=卡特蘭數 由於p不是質數,用分解質因數的方法求 #incl