原创 HNOI2005 虛擬內存 線段樹+Hash

傳送門 題目大意:模擬一個內存系統。 題解:大力Hash+線段樹。 Hash記錄元素是否存在,線段樹尋找訪問次數最少的頁碼。 用指針板線段樹卡了卡常,居然混到BZOJ的rank1了OvO #include<cstdio> #inc

原创 LuoguP2279 [HNOI2003]消防局的設立 貪心+BFS

傳送門 題目大意:給一棵樹,每個消防局可以覆蓋距離不超過2的點,求用最少的消防局把這棵樹全部覆蓋。 我是用貪心做的。 對於當前深度最深的點,如果它沒有被消防局覆蓋,則在其父親的父親處建一個消防局。爲什麼這樣做是對的?因爲這樣可以保證這

原创 LuoguP3831 [SHOI2012]回家的路 分層圖+最短路

傳送門 妥妥的分層圖 分橫豎來建圖,同一列的點(+起點終點)相鄰之間連長度爲距離*2的邊,中轉站分成兩個點,互相連長度爲1的邊。 注意起點和終點是可以既從橫點開始也從豎點開始的,所以橫豎點互相連長度爲0的邊就行了。 #include<

原创 NOIP2018 退役記

佔坑 我會不會被禁賽一年啊 DAY 0 下午去試機,在機房打了個網絡流結果一直沒過,旁邊有兩個初中生看着,巨尷尬 這邊的鍵盤好爛啊~ 晚上住在親戚家,還行吧 DAY 1 早上起來洗臉,突然就流鼻血了,十分難受,吃飯的時候很不爽 由於電

原创 NOIP2017 列隊

傳送門 鴿了一年 測試點1-6:二維數組模擬。 測試點7-10:把所有詢問到的行離散化。 測試點11-16:發現所有事件x等於1,那麼每次出隊,入隊只會對第一行和最後一列造成影響。相當於把最後一列壓到第一行,這樣就相當於維護一個序列,

原创 數位DP模板

數位DP問題,大多是統計數量,通常用按位處理的方法解決。 具體爲:詢問[L,R][L,R][L,R]中滿足某一條件的數。利用前綴和的思想,我們可以把問題簡化,即轉化爲詢問[1,R][1,R][1,R]和[1,L−1][1,L-1][1

原创 高斯消元模板

高斯消元,實際上就是用加減消元法解n元一次方程組。 百度百科上已經說的很清楚了,先把方程寫成矩陣的形式,依次消去各個係數x,y,z...x,y,z...x,y,z...,可以得到一個上三角矩陣。這時已經可以直接讀出最後一個方程的解了,

原创 HNOI2011 XOR和路徑 高斯消元+期望

傳送門 題目大意:給定一張無向連通圖,每次有相等概率走一條邊,求1號點到n號點異或和的期望值。 這道題和NOI2005聰聰與可可很像,只不過…聰聰與可可那題貓一定會抓住老鼠,而這題有環,那麼就不能用記憶化搜索了,因爲每個點的狀態都可以

原创 網絡流模板

網絡流,顧名思義,是求網絡中的流量。 這裏的教程比較容易理解 主要性質: 容量限制 任何邊的流量不能超過其流量。 斜對稱 顯然,若一條邊的流量爲w,即從u->v流量爲w,可以看作是從v->u流量爲-w。 流量守恆 網絡中除原點,匯點

原创 HDU2089 不要62 數位DP

傳送門 數位DP經典題 照着網上的模板打的,使用記憶化搜索,記錄當前位的數字限制,上一個數字,state則構成dp的一種狀態(上一位是否爲6)。 #include<cstdio> #include<cstring> #include<

原创 停課後的每日OI記錄

咕咕咕,咕咕咕 10.28 A.時間與空間之旅:二分+SPFA判斷負環 B.狐狸的謎語:搜索+剪枝 C.花園的守護之神:最短路+網絡流最小割 看了一晚上的網絡流,差不多看懂了,佔坑->網絡流24題 判斷路徑上有沒有負環,先處理出是否能

原创 NOIP2016 天天愛跑步 LCA+差分+桶

傳送門 NOIP史上最難一題。。。 部分分出正解系列 測試點1-5:直接模擬即可 測試點6-8:樹退化成一條鏈。我們先從dep[S]&lt;dep[T]dep[S]&lt;dep[T]dep[S]<dep[T]的情況開始想。depde

原创 NOI2005 聰聰與可可 期望DP+記憶化搜索

傳送門 一道期望DP。 設dp[i][j]dp[i][j]dp[i][j]爲i到j的期望距離,則有 dp[i][j]=(dp[s[s[i][j]][j]][v]+1)/(size[j]+1)+1dp[i][j] = (dp[s[s[i

原创 SHOI2007 園丁的煩惱 離散化+樹狀數組

傳送門 題目大意:多次詢問矩陣和,無修改。n&lt;=50000,m&lt;=500000n&lt;=50000,m&lt;=500000n<=50000,m<=500000 題解:這道題提供了一種全新的思路。我以前也常常遇到這種問題

原创 ZJOI2012 旅遊 樹的直徑+建圖

傳送門 這題神了。。。 題意:在凸多邊形中,畫一條兩個不相鄰頂點之間的線段,使經過的三角形個數最多。 題解: 對於兩個有公共邊的三角形,可以發現若有一條直線穿過某個三角形並從公共邊出去,則一定會選中兩個三角形(顯然)。而如果直線穿過的