原创 HDU - 1281 棋盤遊戲 (二分圖匹配)

HDU - 1281 題意:中文題題意還比較好理解。 思路:肯定又是行列分開,行是一個二分圖的x部,列是y部,這裏不影響攻擊,可以推出每行每列最多一個兵(可能有些位置不能放,所以可能有的行是沒有的),如果把這條邊(也就對應一個位置)刪掉,

原创 POJ - 1087 A Plug for UNIX (最大流)

POJ - 1087 題意:寫這種題目,(有翻譯情況下)我的看題時間 = 想 + 敲代碼,生無可戀.jpg 一個房間裏有很多插座,一種類型的插座只能容納一種類型的插頭,還有一些適配器,使不同類型的插頭可以插到某個插座上,適配器還可以嵌

原创 HDU - 1083 Courses(二分圖匹配)

HDU - 1083  題意:就是求最大匹配是否是完美匹配。 #include <cstdio> #include <iostream> #include <algorithm> #include <cstring> using nam

原创 【dp每一天】POJ - 3107 Godfather (樹形dp)

額這題也挺水的。 題意:找樹上滿足去掉它之後,剩餘連通的結點塊中最大的那一塊最小的結點們。 思路:有 dp[u] = max(sum[v], n - sum[u]); v是u的子結點 代碼: #include <cstdio> #incl

原创 【dp每一天】POJ - 1463 Strategic game (樹形dp)

POJ - 1463 題意: 全部邊覆蓋,所加的士兵的最小值,遞推式可直接看代碼。說起來邊覆蓋感覺好像。。二分圖? #include <cstdio> #include <cstring> #include <iostream> #inc

原创 dfs+bfs專題(簡單題)

A.迷宮問題 POJ 3984 bfs + 輸出路徑 #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> #include <que

原创 HDU - 1814 Peaceful Commission(一個粗暴的2-sat)

HDU - 1814  題意:直白的2-sat,但是這個是要輸出最小的字典序,那麼我們只能選擇暴力。 思路:我的暴力的想法是,枚舉每對元素,先優先取靠前的那個,把它所有連了邊的都取了然後打tag,如果它不會產生矛盾,那麼繼續,如果有,那麼

原创 【dp每一天】HDU - 2084 數塔(水dp)

...感覺這篇像湊數一樣.....不過這個在算法課上講的時候我也沒實現過,正好這次寫了寫。 HDU - 2084 #include <cstdio> #include <iostream> #include <algorithm> us

原创 【dp每一天】POJ - 1655 Balancing Act(說是樹形dp其實就是模擬?)

POJ - 1655 題意:求樹的結點種去掉點後形成的森林的結點的最大值中的最小值。 思路:講道理,我感覺這是模擬.....和昨天那道題很像。因爲去掉結點,自己的子樹肯定是分開的,所以對於u而言,它的balance就是max(sum[v]

原创 HDU - 1054 Strategic Game(二分圖匹配寫法)

HDU - 1054 題意:就是求最小頂點覆蓋。樹形dp過了的題,看着是說怎麼這麼眼熟 思路:這個二分圖比較好想的,找個根,與根的最短距離爲奇數的點丟在一部分,是偶數的點丟在另外一部分,然後連邊求邊的匹配。 講真我現在看到一些圖還是覺得懵

原创 二分圖匹配:從入門到崩潰

先上學習材料: 一個相當有趣的匈牙利算法講解 匈牙利算法: bool Find(int u) { for(int i = h[u] ;~i; i = edge[i].next) { int v = edg

原创 HDU - 2444 The Accomodation of Students(二分圖匹配)

HDU - 2444  題意:有兩兩認識的一些同學,但是a認識b,b認識c,不代表a認識c,求這個關係能否構成二分圖,以及最大匹配 #include <cstdio> #include <cstring> #include <iostre

原创 POJ - 3281 Dining (最大流)

POJ - 3281  題意: 很多隻牛,每隻牛都有很多喜歡的食物和飲料,但是每次只能選一個食物和一個飲料,問最終能使多少牛滿意 思路: : ) 我能說我是當二分圖寫的嗎,但是後來發現,如果直接連飲料和食物,那麼會出現,一隻牛喜歡的,可

原创 關於二叉樹

HDU - 1710 題意:前序中序求後序 #include <cstdio> #include <iostream> #include <cstring> using namespace std; const int maxn = 1

原创 POJ - 1459 Power Network(網絡流最大流)

POJ - 1459 題意:看題看的心累,其實就是所有power station是源點,所有consumer是匯點,然後就是一個最大流問題了~ 讀入寫的有點蠢,其實scanf(" ()") 這種就夠啦~ 另外,對於單路增廣的