原创 樹狀數組的一些理解

樹狀數組中的lowbitlowbitlowbit的一些具體意思,有一點感悟。 原理:這個百度上都有,就不說了。 假設樹狀數組爲c[]c[]c[],原數組爲a[]a[]a[],1−i1-i1−i的和數組爲sum[i]sum[i]su

原创 hdu5249--權值線段樹

權值線段樹,是以權值爲下標的線段樹,不像普通的線段樹一樣。 但是對於較大的數據,就需要離散化來解決空間上的不足。 權值線段樹這樣一說,有點兒像主席樹的感覺。空間上也優於主席樹。但是它對於子區間卻無能爲力。它對於一些動態的整個區

原创 1月12號總結

今天做了幾道題,來談一談感想。 首先是CF11080F:求最小生成樹的個數。 這道題我的作法是:構造一顆最小生成樹,枚舉其他不在裏面的邊,若加入這條邊,一定可以構成一個環。在這個環中(除開這條邊)的最大邊權與這條邊相等,則可以多出

原创 1-15總結

1. 今天看了看昨天晚上沒寫完的一道題,一道線段樹的題,結果理解錯題意了。 原題:CodeForces 1000F 我的題面:求數列a[]a[]a[]的[L,R][L,R][L,R]區間內有多個數字只出現了一次。 原題意:寫出任

原创 線段樹--segment_tree--lazy_tag

經過3天的努力,終於解決了lazy_tag的一系列錯誤,終於可以發篇博客了~ lazy_tag是用來區間查詢和修改的一種快速的方法,是線段樹一種比較快速的操作。(雖然有些可以用樹狀數組來解決). 至於它的思想,可以去看劉汝佳的

原创 KM算法--帶權二分圖最佳匹配

KM算法還是比較難理解,對那個很無語的”頂標”,還有一堆定理(表示不想看)~ 但是代碼還是比較好寫, 它是基於匈牙利算法的二分圖最大匹配。 思路就看這個神犇的博客吧! –>|傳送門|<– 代碼是進行了優化的: 時間複雜

原创 二分圖最大匹配(HK)

二分圖最大匹配經典的算法就是匈牙利算法,但是本文並不是講述匈牙利算法,而是說一個時間複雜度更爲優的HK算法。 先定義x方點,y方點爲二分圖中不同的兩方點。 實現過程: 1.將所有x方點中未蓋點全部加入隊列。 2.進行廣搜,

原创 hdu2896(病毒侵襲)--AC自動機

過完年了,又回來集訓。 年後第一題。 這道題寫了一個晚上,可能太久沒有寫過了,有點生疏了。 最後還是請ztz大神來幫忙看了看。 總結: 1.AC自動機的數組是根據所輸入模板的總字符來定。 2.對於tot

原创 帶花樹

在此,借鑑了DY大神的代碼傳送門 Orz 還有一篇講原理的博客,也寫得好傳送門Orz 總的來說帶花樹是用來進行一般圖的最大匹配, 下面來解釋一下帶花樹。 核心:找增廣路。 具體操作: (對於每一個搜出來的

原创 網絡流isap

對於網絡流,在高端局是十分有用的。 isap則是除了預留推進以外最好的網絡流了(自己覺得),加入gap優化後,跑出來的效率還不錯。 至於isap的基本操作則是利用了d[node]=d[pre]+1時爲最優這個性質。也是通過增廣

原创 樹鏈剖分(hdu3966)

題意: 多組數據。 n個兵營,m條道路,q個操作。 “I”:給C1和C2道路上的所有兵營都增加K個兵; “D”:給C1和C2道路上的所有兵營都減少K個兵; “Q”:查詢第K個兵營的

原创 poj2449--A*算法求解k短路

今天想到了以前早就遺留下來的一個算法–A*算法,基本上,我對於A*只有過簡單的瞭解,卻從來沒有具體的寫過 A*,於是就有了今天的A*學習。 A*算法相比與其他的搜索來說,它多了一個估價函數而已。而估價函數在不同的題目中形式又不同,

原创 poj1014多重揹包--單調隊列優化

多重揹包,大家都知道時O(n^3)的複雜度。但是這個複雜度在很多題目中時用不上的。所以就有了各種優化,如:二進制分組,堆優化等等。 但是最好的還是單調隊列優化. 它時怎麼實現的呢? 還是以pod1014的diving來說吧!

原创 最小費用最大流--poj2135

對於最小費用最大流,很久以前就已經學習過了,但是卻早已經不記得了。 於是今天就來重新的複習一下。 對於最小費用最大流,我一直都有疑問,不知道是否有沒有更高效的做法。 下面還是來簡單的概述一下最小費用最大流的基本操作。 對於

原创 lightoj1018(狀態壓縮dp)

今天寫了一個多小時,才把狀壓dp寫好。(還是在DY的指導下完成的) 但是,卻也總結了一些知識: 1.對於以前的0~n-1和1~n的差別不清楚,原來只不過是最後一位的使用,但內存差距較大。 2.對於位運算的理解,又提升了一個層