刷網絡流專題也有一週了,該進行下一個階段的計劃了,還有幾道題留着產仔吧。php
總結:只要模板好,沒有題A不掉。算法
核心:建圖。網絡
分別寫博客太費時間,一塊兒匯個總吧。閉包
POJ-3436 ACM Computer Factory
優化
題意很迷,看完了都不造讓你幹什麼。很難和網絡流結合。spa
題意:一臺電腦有p個零,有n臺機器,每臺機器能夠給裝上某些零件,也能夠給卸載。求單位時間的最大生產量。.net
建圖:以0爲源點,源點和輸入沒有1的機器連邊,容量爲INF,機器自己連一條邊,容量爲其生產效率,若是一臺機器產出效果知足另外一臺機器的輸入要求,那麼這兩臺機器也要連邊,容量爲INF,構造一個匯點,產出全爲1的機器和匯點連邊,容量爲INF。源點到匯點求一個最大流便可。rem
提交代碼:https://cn.vjudge.net/contest/170280#status/liuyuqiang0/A/0/get
POJ-3281 Dining (推薦)
博客
題意:n頭牛,F種食物,D種飲料。n頭牛都喜歡的各類食物和飲料,給一頭牛分配一種食物和一種飲料能使其知足,每種食物和飲料只能被分配一次,求最多能夠有多少頭牛被知足。(目測此題數據較水,不拆點也能過)
建圖:把牛拆點。以0爲源點,和每種食物連一條邊,容量爲1,食物和牛的入點連邊,容量爲1,牛和牛的出點連邊,容量爲1,牛的出點和飲料連邊,容量爲1,飲料和匯點連邊,容量爲1.求一遍最大流便可。
提交代碼:https://cn.vjudge.net/contest/170280#status/liuyuqiang0/B/0/
POJ-1087 A Plug for UNIX (推薦)
題意:n種型號的插座,m種電器,每種對應一種型號的插座,k種適配器,能夠用其中一種代替另外一種。求最少有幾個電器找不到插座。
建圖:先跑一個floyd傳遞閉包。仍是以0點爲源點,分別和電器連邊,容量爲1,電器到插頭連邊,容量爲1,插頭和匯點連邊,容量爲1。求一波最大流。
這道題也能夠用二分匹配寫,建圖相似。數據略坑。
代碼:https://cn.vjudge.net/contest/170280#status/liuyuqiang0/C/0/
POJ-2195 Going Home (推薦)
題意:n*m的格子,每一個格子上能夠是人用m表示,也能夠是房子用H表示,也能夠是空白的。每一個房子只能住一我的,每一個格子上均可以同時容納全部的人,保證人的數量和房子的數量相同,求全部人找到本身的房子所走的距離和的最小值。
建圖:典型費用流,其實題意已經暗示怎麼建圖了。仍是以0爲源點,和全部的人建圖,容量爲1,費用爲0,每一個人和全部的房子建邊,容量爲1,費用爲曼哈頓距離,全部的房子和匯點建邊,容量爲1,費用爲0,求一波最小費用最大流。
代碼:https://cn.vjudge.net/contest/170280#status//D/0/
POJ-2516 Minimum Cost(推薦)
題意:m個商店,每一個商店售賣k種貨物,每種貨物都有必定的庫存,n個顧客,每一個顧客對每種貨物都有必定的需求量。每一個商家將每種貨物運送至不一樣的客戶都有一個費用。求是否能知足全部顧客的需求,輸出總運輸費的最小值。
建圖:多源點多匯點的網絡流,對每種商品分別建圖求費用流,總的值就是答案,但須要判斷每種商品的庫存是否能知足全部顧客的需求。
代碼:https://cn.vjudge.net/contest/170280#status//E/0/
POJ-1459 Power Network
題意:一個電網總共有n個點,np個供電站,每一個供電站都有必定的電量儲存,nc個客戶,每一個客戶都有一個電量消耗的最大值,m條電線,每條電線都有其最大承載電量。求這個電網的最大消耗電量。
建圖:仍是以0點爲源點,源點和供電站連邊,容量爲對應電站的電量。電線做爲普通邊。客戶和匯點連邊,容量爲客戶的最大消耗量。求一波最大流。
代碼:https://cn.vjudge.net/contest/170280#status/liuyuqiang0/F/0/
HDU-4280
題意:n個小島之間有m條無向運輸路線,每條路線單位時間均可以運輸必定的人,最左端的點爲起點,最右端的點爲終點。求單位時間最多能從起點至終點運輸多少人。
建圖:源點和匯點都已經給定,求最大流。但數據很大,對算法的高效性和有要求,用bfs+棧優化的ISAP能夠過。
代碼:https://cn.vjudge.net/contest/170280#status/liuyuqiang0/G/0/
題意:和POJ-3281同樣。F種食物D種飲料,每種都有必定的數量,n我的每一個人都有本身的喜愛,若是他喜歡的東西沒有了那麼直接離開,其實就是求最多有多少人兩種都知足。
建圖:0點爲源點,源點到食物建邊,容量爲食物的數量,食物到人建邊,人到飲料建邊,容量都爲1,飲料到匯點建邊,容量爲飲料的數量。求最大流。
題意:https://cn.vjudge.net/contest/170280#status//H/0/
題意:n個城市m條無向邊,給出兩個點,間諜從一個起點到終點運輸核武器。n個城市每一個城市設置監察所都有一個費用,求須要設置多少個點總費用最小使得沒法到達終點。
建邊:拆點,把每一個城市拆成出點和入點容量爲其費用,其餘全部的邊容量都爲INF。源點到起點連邊,終點到匯點連邊。求最大流。
代碼:https://cn.vjudge.net/contest/170280#status/liuyuqiang0/I/0/
題意:和上一個題很相似,上一個題是斷多少點費用最小使得沒法到達終點,這一題是斷一些邊費用最少使得沒法到達終點。
這一題老實說不太會,這個題是一個定理:最小割定理。求完最大流後的殘餘網絡中,殘量大於0的和源點在一塊兒做爲S集合,剩下的做爲T集合。把全部S-T的邊斷開便可。
代碼:https://cn.vjudge.net/contest/170280#status/liuyuqiang0/J/0/
題意:n我的,m個星球。每一個人能夠適合一些星球,每一個星球有最大的承載量。求是否全部人都能居住在外星球上。
建圖:很卡時間。n的範圍是1e5,而m的範圍是10,若是直接建圖邊的數量可達2e6。因此確定是要換方法的,聽說可用多重匹配寫。不過用網絡流也是能夠的,注意到m只有10,那麼每一個人所適應的星球最多有10個,也就是說能夠將人劃分爲1024類,這樣就極大縮小的點的數量,而後建圖一波最大流便可。
代碼:https://cn.vjudge.net/contest/170280#problem/M
今天先到這了,下週,準確來講是明天開始下一個專題了。