【費用流演算法:ZKW】
連續研究了幾天的費用流,一個屬於自己版本的zkw費用流出爐了。
zkw神牛發明的zkw演算法可以說是編寫簡單,速度也非常不錯。
個人還給zkw加了一個當前弧優化,KM演算法中的鬆弛變數優化與連續增廣優化,不過加了這些優化後zkw的全部過程也只有30行。
感覺上zkw就是優化了spfa求最短路的過程,因為spfa沒有充分利用上次求出來的結果最短路的結果,
zkw相當於迪傑斯特拉每次加入一條介於訪問過的點和沒有訪問過的點之間一條改進量最小的邊,所謂的改進量就是g[k]=dis[i]-dis[j]+w[k];
關於一開始就有負權的邊,ZKW牛本人說先求一次可行流再求一次最小費用流,這個我沒看懂。。大量隨機資料證明,只有正權的費用流用zkw是不會錯的,那麼根據題目的性質給負權的邊加上一個極大值就可以了。
不知道為什麼(難道是我隨出來的資料太水了),zkw在各種圖上有無法超越的優勢,隨機稠密圖比spfa快10倍左右,300個點50000條邊大約1.5s比spfa快8倍左右,10000個點100000條邊12s左右,spfa一分鐘沒跑出來不想等了。
經典費用流napkin:
相關推薦
【費用流演算法:ZKW】
連續研究了幾天的費用流,一個屬於自己版本的zkw費用流出爐了。 zkw神牛發明的zkw演算法可以說是編寫簡單,速度也非常不錯。 個人還給zkw加了一個當前弧優化,KM演算法中的鬆弛變數優化與連續增廣優化,不過加了這些優化後zkw的全部過程也只有30行。 感覺上zkw就是優
BZOJ2324 [ZJOI2011]營救皮卡丘 【費用流】
正整數 for 直接 break 之間 包含 markdown 旅遊 日本 題目 皮卡丘被火箭隊用邪惡的計謀搶走了!這三個壞家夥還給小智留下了赤果果的挑釁!為了皮卡丘,也為了正義,小智和他的朋友們義不容辭的踏上了營救皮卡丘的道路。 火箭隊一共有N個據點,據點之間存在M條雙向
BZOJ1221 [HNOI2001] 軟件開發 【費用流】
gpo etc c++ 根據 long spa 開發人員 != 提高 題目 某軟件公司正在規劃一項n天的軟件開發計劃,根據開發計劃第i天需要ni個軟件開發人員,為了提高軟件開發人員的效率,公司給軟件人員提供了很多的服務,其中一項服務就是要為每個開發人員每天提供一塊消毒毛巾,
1877. [SDOI2009]晨跑【費用流】
clu use post AC while tdi nod %d 最短 Description Elaxia最近迷戀上了空手道,他為自己設定了一套健身計劃,比如俯臥撐、仰臥起坐等 等,不過到目前為止,他 堅持下來的只有晨跑。 現在給出一張學校附近的地圖,這張地圖中包含N個
1070. [SCOI2007]修車【費用流】
med tdi lib 逆向 node void input size 小數點 Description 同一時刻有N位車主帶著他們的愛車來到了汽車維修中心。維修中心共有M位技術人員,不同的技術人員對不同 的車進行維修所用的時間是不同的。現在需要安排這M位技術人員
1927. [SDOI2010]星際競速【費用流】
一個 use detail 開放 queue 網絡 while 夢幻 details Description 10年一度的銀河系賽車大賽又要開始了。作為全銀河最盛大的活動之一,奪得這個項目的冠軍無疑是很多人的 夢想,來自傑森座α星的悠悠也是其中之一。
1221. [HNOI2001]軟件開發【費用流】
printf void inpu body add push cstring fin turn Description 某軟件公司正在規劃一項n天的軟件開發計劃,根據開發計劃第i天需要ni個軟件開發人員,為了提高軟件開發人員的效率,公司給軟件人員提供了很多的服務,其中
1061. [NOI2008]誌願者招募【費用流】
超過 ans 通過 noi 天數 費用流 () set std Description 申奧成功後,布布經過不懈努力,終於成為奧組委下屬公司人力資源部門的主管。布布剛上任就遇到了一個難 題:為即將啟動的奧運新項目招募一批短期誌願者。經過估算,這個項目需要N 天才
洛谷 P1251 餐巾計劃問題(線性規劃網絡優化)【費用流】
spfa n) blank ini 網絡優化 DC for sca .org (題外話:心塞...大部分時間都在debug,拆點忘記加N,總邊數算錯,數據類型標錯,字母寫錯......) 題目鏈接:https://www.luogu.org/problemnew/show
洛谷 P4012 深海機器人問題【費用流】
i++ using ble tps 建圖 font flow for https 題目鏈接:https://www.luogu.org/problemnew/show/P4012 洛谷 P4012 深海機器人問題 輸入輸出樣例 輸入樣例#1: 1 1
POJ 2516 Minimum Cost 【費用流】
ios amp cstring max min ans nbsp ostream keep 建模比較難想。。 #include<iostream> #include<deque> #include<vector> #include&
hdu 5988 Coding Contest【2016青島區域賽現場賽G】【費用流】
題意: 給你N個區域,M條路。接下來N行,每行bi,si,每一區域有bi個人,si個食物。食物是不動的,需要人沿著路去找食物,一人一個。 接下來M行,vi,ui,ci,pi代表vi和ui之間有一條路,最多可以走過ci個人,第一個走過去不會損壞路,之後走過去的人
[bzoj2597][Wc2007]剪刀石頭布【費用流】
【題目連結】 https://www.lydsy.com/JudgeOnline/problem.php?id=2597 【題解】 考慮從總的方案數中減去不合法的方案數,一個不合法的三元環,一定有且只有點的出度為3。所以一個度數為kk的點會產生1+
【費用流】【求證明】2019雅禮集訓 sum
題目: 在不超過n的數中,選出一個集合,使得集合內部元素兩兩互質,且集合元素總和儘可能大。 分析: 神奇的性質題。 出題人不會證,問了一堆大佬也不會。 哈(那麼證明就留給讀者來完成) 性質是: 1、每個元素最多隻有兩個質因子。 2、若有兩個質因子,一定有一個大
FZU2143 Board Game 【費用流+棋盤模型】
#include<stdio.h> #include<string.h> #include<vector> #include<queue> #include<algorithm> using names
【線段樹優化建圖+費用流Spfa增廣】BZOJ4276(ONTAK2015)[Bajtman i Okrągły Robin]題解
題目概述 有n個強盜,第i個強盜將在[Li,Ri]內選一段長度為1的時間盜竊ci元,每個長度為1的時間只能阻止一個強盜,求最大能挽回的損失。 解題報告 這是分配型別的題目,考慮最大費用最大流。 先將超級源S與每一個強盜i建容量為1,費用為ci的邊。然
【網路流24題之一】飛行員配對問題+求方案(網路流dinic演算法求二分圖最大匹配)
題面 題目背景 第二次世界大戰時期.. 題目描述 英國皇家空軍從淪陷國徵募了大量外籍飛行員。由皇家空軍派出的每一架飛機都需要配備在航行技能和語言上能互相配合的2 名飛行員,其中1 名是英國飛行員,另1名是外籍飛行員。在眾多的飛行員中,每一名外籍飛行員都可
【費用流】【網絡流24題】【P4013】 數字梯形問題
img null des 給定 圖片 允許 mit load flow Description 給定一個由 \(n\) 行數字組成的數字梯形如下圖所示。 梯形的第一行有 \(m\) 個數字。從梯形的頂部的 \(m\) 個數字開始,在每個數字處可以沿左下或右下方向移動,形成
【Red5流媒體伺服器搭建】
1.下載red5-server windows環境: 啟動red5.bat,網頁輸入127.0.0.1:5080測試是否正確啟動 (注意先要有jdk環境) 2. Eclipse安裝red5外掛(可跳過) 3.red5 demo演示 demo在最新版r
【死磕演算法·字串問題】最長無重複子串問題
題目大意: 給定一個字串str,求該字串中的最長無重複子串的長度。 如“abcd”的最長無重複子串是“abcd”,長度為4;“abcb”的最長無重複子串是“abc”,長度為3。 題目思路: 遍歷字串,表示出以每個字串元素str[i]為結尾的最長無重複子串長度,遍歷完成後求最大值即可。