原创 BZOJ 1047 [HAOI2007]理想的正方形 - 單調隊列

拆成二維搞一搞就好了撒,還是蠻好想的。 先對於row來一波滑動窗口,記錄每個節點在n範圍內的最值,然後colomn再搞一遍,求個最值一減ans就出來了(注意colomn搞的時候,>=n才記爲有效值,反例是左上角的(1,1)相減答案

原创 BZOJ 1907 樹的路徑覆蓋 - 樹形DP/貪心

樹形DP的做法顯然: 對於任意一個節點,它可以連接兩個節點,那麼設0狀態爲不能再連接節點,1爲還可以再連接一個節點,伸出一條手臂可以再搭上別的節點。 0/1狀態初值均設爲1。 那麼合併子樹的過程中有如下的轉移方式: 1.父節

原创 樹狀數組的玄學功效

坑 1.單點修改區間最值 詳情請見 ->blog.csdn.net/u010598215/article/details/48206959 裸題模板:HDU1745 #include<iostream> #include<cst

原创 UVa 1471 Defense Line 防線 - LIS變形

前面的博文有寫過LIS O(nlogn)的做法,今天再複習一下。 戳這裏->http://blog.csdn.net/x_1023/article/details/70259967 首先考慮一個潛能數組c的作用: c[i]表示

原创 BZOJ 2654 tree - 二分+最小生成樹

先給出一種方案: 首先二分一個權值mid,然後給白邊每一個邊加上mid,求一個最小生成樹,觀察白邊使用的個數,二分到白邊等於need,ans=val-mid*need。 下面給出證明: 白邊數是一定的,二分權值,mid大,顯

原创 BZOJ 1079 [SCOI2008]着色方案 - 花式DP

從未見過DP還可以這樣玩的,一開始以爲是數學,C+容斥,後來覺得不對,哪有數學題長成這個樣的,然後各種dp,15維的dp實在是沒敢寫,於是膜了hzwer的代碼。。。真長見識。 考慮到c[i]的範圍不超過5,其中必有玄機,於是可以用5維表示

原创 洛谷 P3941 入陣曲 - 前綴和

爲啥這麼一道弱題難了我好久。。。 考慮一維的情況,維護前綴和,其中餘數用一個桶來維護,前綴和相等的其差的餘數一定相等,於是在桶裏搜就好。 二維把每一個豎列的線段區間壓成一維即可。 一維轉二維啊 #include<iostream> #

原创

4580 2427 附BZOJ4580代碼 #include<iostream> #include<cstring> #include<cstdio> #include<cstdlib> #include<algorithm

原创 BZOJ 4027 [HEOI2015]兔子與櫻花 - 貪心

可能做了假題。。。一開始想二維樹形dp,結果發現nm乘起來肯定會掛,然後繼續膜hzwer學長的代碼,發現是道瓜題。。。 考慮這樣一個結論,下面刪點肯定不上面刪點優: 如果一個節點x其子節點可以被刪去,那麼至少可以刪去一個點,貢獻至少爲1

原创 BZOJ 1999 [Noip2007]樹網的核(2282 [Sdoi2011]消防) - 樹的直徑+單調隊列

首先貼出一篇我認爲講的最好的: http://blog.csdn.net/vmurder/article/details/44627469 首先證明結論: 證明一:樹的核必在直徑上 1.選定的核與直徑無交集 顯然選的核在直徑的一個

原创 BZOJ 2763 [JLOI2011]飛行路線 - Dijkstra+分層圖/DP

一道分層圖的水題,覺得分層圖這個玩意非常妙,於是就水了一波。。。 記記好是無向圖。。。向圖。。。圖。。。 #include<iostream> #include<cstring> #include<cstdlib> #include<cs

原创 BZOJ 1912 [Apio2010]patrol 巡邏 - 樹形DP(樹的直徑)

一眼看出了是求樹的直徑,然而沒學過可怎麼破。。。 然後百度自學了一波 http://www.cnblogs.com/wuyiqi/archive/2012/04/08/2437424.html 大概方法就是任找一個點,找離他最遠的點,此

原创 BZOJ 1880 [Sdoi2009]Elaxia的路線 - SPFA+拓撲排序

大家都說這是一道大水題。。。想打dyx 應該瞭解到拓撲排序的功能,類比於食物鏈那道題,拓撲排序可以dp求出最長鏈。而在這道題只需求出可以重複的部分搞一個拓撲排序即可。 而怎樣求重複的部分呢?有一個思想很好:將一條線路拆分成起點到此的距離和

原创 BZOJ 1307 [ZJOI2008]生日聚會Party - DP

爲啥機房的巨佬都說這是一個水題。。。絕望ing /一個尷尬而不失友好的微笑 想到解法了,關鍵不知如何遞推,其實很好遞推啊,是我太愚蠢了。。。 開始想法:dp[i][j][k][l]其中i爲男生數,j爲女生數,k爲所有後綴中女生-男生的

原创 BZOJ 1177 [Apio2009]Oil - 花式枚舉+亂搞

原來以爲是什麼神題。。。結果。。。我的三觀。。。 大概是一道碼農題,所有三種情況的分類如下 (圖源Galaxies:http://www.cnblogs.com/galaxies/p/bzoj1177.html) 先前綴和亂搞,然