原创 BZOJ 1491 [NOI2007]社交網絡 - Floyd(相關的DP思想)

首先關於Floyd的理解,有一篇博客講的很詳細: http://www.cnblogs.com/chenying99/p/3932877.html Floyd從本質上來講是一種DP+滾動數組優化,省去了一維k,即對於已用幾條邊的討論,而

原创 BZOJ 1875 [SDOI2009]HH去散步 - 矩陣快速冪

大概是矩陣快速冪的一道裸題。。。 然後做着做着發現不對。。。好像條件還有限制,兩次邊不能重。然後苦思冥想好一陣決定抄題解。發現是把點的轉移改爲了邊的轉移,思路還是一樣的。其實這道題莫名其妙給出m的範圍就已經很可疑了,下次應該注意… #in

原创 POJ 3613 Cow Relays - 倍增Floyd(矩陣加速冪)

大概是倍增Floyd的模板題。 Floyd的原理是一個一個點向圖中加,k表示已經加了k個點,並且加點可以累加。(可以參考上篇博文)而這道題恰是強制加入T個點,那麼我們可以將T利用一種類似於加速冪的思想向其中加點。而需要注意的是,兩個數組的

原创 BZOJ 1922 [Sdoi2010]大陸爭霸 - Dijkstra

一遇到圖論就一臉懵逼,二臉惶恐,三臉放棄。。。 Dijkstra都不會寫了,還是退役好了 大概就是就是類似於拓撲排序那樣,對於有限制的點,其父節點遍歷完成後,該節點入度–,等到入度爲0即可扔進隊列。需要維護兩個東西,一個是實際路程,另一個

原创 BZOJ 1084 [SCOI2005]最大子矩陣 - DP

一開始被這道題嚇到了,k個是什麼操作。。。 然後看到數據範圍。。。發現就是一道暴力討論題(當然我是這麼想的) m=1很簡單 對於m=2,每行設了5個狀態: 0:此行不選 1:只選左邊格子 2:只選右邊格子 3:左右均選,且左

原创 BZOJ 2186 [Sdoi2008]沙拉公主的困惑 - 篩法+線性求逆元

首先有一個很好玩的線性遞推求逆元的方法: http://blog.csdn.net/whyorwhnt/article/details/19169035 對於這道題,若設gcd(a,b)=1,則必然有gcd(a+kb,b)=1,因在mo

原创 BZOJ 1025 [SCOI2009]遊戲 - 篩法+DP

一眼就能看出來這道題的規律,找循環節的lcm,然後。。。然後就不會了。。。 這道題已經轉化爲了:求 一堆和比n小的數構成的 不同lcm的個數 lcm(a1,...,an)=px11⋅px22⋅...⋅pxnn其中∑i=1nai<=n

原创 BZOJ 2004 [Hnoi2010]Bus 公交線路 - 狀壓DP+矩陣快速冪

看數據範圍,算法一目瞭然,然而。。。並不會啊 由於p位的限制,所有車一定在p位的限制內轉移,於是考慮這樣的狀壓: 設一個p位的二進制碼,以第一輛車作爲視角向後p位,要求p位之內有k輛車。而且由於是以第一輛車作爲視角,於是第一位一定是1。

原创 BZOJ 1296 [SCOI2009]粉刷匠 - DP

一開始看錯數據範圍,搞了一個O(Tn2m2) 的,然後就GG了。 這種做法的思路是,枚舉當前狀態,可以繼續塗此層剩餘,也可以塗他層,一分類討論即可。 後來發現這種做法肯定有大量重複,而且每行之間獨立,不必將每行的狀態混在一起,於是每行d

原创 BZOJ 1042 [HAOI2008]硬幣購物 - 容斥+DP

首先假設每種硬幣沒有個數限制,每種硬幣都dp搞一搞,算出來一種幣值有多少種組成方式,然後考慮這樣一個思路:答案是總數減去不合法情況,而不合法有四種硬幣可以選擇,於容斥搞一搞就好了。。。 我連容斥都不會了。。。真是菜。。。 #include