原创 spoj 861 SWAPS & uva 11990 "Dynamic'' Inversion(動態維護逆序對)

題意:有150000個數,10000條操作,每次將第i個數變爲x,訊問每次操作後逆序對的數目。 解法1:樹狀數組+treap,樹狀數組的每個元素都是一棵樹,這樣可以在lognlogn時間內查詢前i項有多少個小於等於k的元素,當某個元素法

原创 poj 2890 Matrix Multiplication

題意:對一個對焦線元素爲1、k*k的01矩陣在布爾運算的意義下進行2006次冪運算(k<1000 )。求得到的矩陣裏有幾個1。 解法:由於是布爾意義下的運算,k次矩陣乘相當於長度爲k的路徑個數,由於2006>k,因此可以看做求一個圖的傳遞

原创 hdu 3873 Invade the Mars(自寫堆優化Dijkstra)

題意:以城市1爲出發點,城市n爲目的地,有若干條限制:要首先攻佔城市a才能攻佔城市b,問攻佔城市n所需的最短時間。 從源點到任意一點的最短路受兩個條件的限制:一是源點到自己的最短路,而是源點到限制點的最短路,即限制點最短路f[c] = M

原创 CF#136

A. Little Elephant and Problem 題意:給出一個數組,問是否是由一個已排序的數組經過交換至多一對數得到。 解法:將給定的數組排序後與元數組比較,若有多於兩個位置不同則不是,否則將原數組兩個位置的數字交換後比較是

原创 hdu 3225 Flowers Placement(字典序第k小的完美匹配)

題意:用n個元素填滿一個m行n列的矩陣,使得每行和每列中每個元素僅出現一次,現要再添加一行,使得矩陣仍滿足上述限制,問字典序第k大的方案是什麼. 解法:錯誤的解法是填k次,每次填最小的,若仍存在解則第k次的填充方案就是字典序第k小的,例如

原创 sgu 438 The Glorious Karlutka River =)(動態網絡流)

題意:m個人在一條寬度爲w的河的南岸,現在要到對岸,已知河中有n塊石頭,每塊石頭同時只能容納ci個人,每個人一次都可以跳向距離爲d的距離,每次跳躍耗時爲1,問m個人全部過河所要花費的最少時間。 解法:不難看出此題具有網絡流的各個因素。源-

原创 hdu 4391 Paint The Wall(根N分段哈希)

將整個區間分爲sqrt(n)段小區間,每個段長度爲sqrt(n),並維護每一段的統計量,這樣可以在sqrt(n)時間內完成一次區間查詢或更新。平衡查詢和更新之間矛盾是數據結構設計時的重要考慮因素,而這種做法是經典的平衡做法,早就瞭解,但以

原创 spoj 3196 Divisibility Relation(最大獨立集輸出方案)

題意:給出200個數,選出最大的子集,使得子集中的數相互不整除。 解法:將可以整除的點連邊,看上去像是個無向圖最大獨立集,通過求最大團的辦法求解複雜度hold不住。於是觀察圖的特點,由於整除是一種偏序關係,因此構成的是一個有向無環圖,因此

原创 平面圖ST最小割(hdu 3870)

對於平面圖有如下性質: 1.(歐拉公式)如果一個連通的平面圖有n個點,m條邊和f個面,那麼f=m-n+2 2. 每個平面圖G都有一個與其對偶的平面圖G* 3. G*中的每個點對應G中的一個面 4.對於G中的每條邊e,e屬於兩個面f1、f2

原创 poj 2942 Knights of the Round Table

題意:在一張無向圖中,問有多少個點不屬於任意一個奇圈,孤立點不屬於奇圈 首先明確兩個定理: 定理1:對於一個點雙連通分量,如果找個一個奇圈那麼這個分量的其他點也必然在某個奇圈內。    證明很簡單,設ab是一個奇圈上的點,c不屬於這個奇圈

原创 Hdu3947 流量等式建圖

此題是以《NOI2008志願者招募》爲背景的,預做此題需要先體會《志願者招募》的思想 只不過由線性結構變爲樹形結構,但是問題的本質沒有變,都是一個元素影響連續的若干個位置,構圖的本質都是使每個變量x出現分別以+和-的形式出現在兩個恆等式中

原创 poj 2843 Cutting Cake

題意:一塊N*N大的蛋糕M次訊問,每次切走一個矩形,問每次切的矩形被分成了多少塊(1 <= N <= 1000, 1 <= M <= 10000)。 解法:顯然是求某個區域內的連通分量數目,由於這個區域內的元素在訪問後會被切除,因此每個元

原创 hdu 4358 Boring counting

題意:給出一棵樹,每個點有一個點權,問一x爲根的子樹中有多少種權重恰好出現了k次。 懶了,直接貼題解,況且本來也不是自己寫出來的 #include <cstdio> #include <cstring> #include <algor

原创 邊雙連通分量

關於橋與雙連通分支的定義及求法void大神給出了很詳盡的介紹圖的割點、橋與雙連通分支 總結幾條做題過程中發現的關於邊雙連通分量的性質: 1.將圖中每個邊連通分量縮爲一個點後,只連端點不位於同一連通分量中的邊,則將圖轉換成了一棵樹,且樹中

原创 hdu 4262 Juggler(樹狀數組)

題意:某人手上有一串珠子,順時針編號1--n,每次可進行三種操作:順時針旋轉一個珠子,逆時針旋轉一個珠子,將手中的珠子移去(移去後順時針方向下一個珠子進入手中),問按標號12345順序將所有珠子逐一移去,最少需要多少次操作。 分析:假設當