網路流的幾個小優化

2022-05-09 16:30:37 字數 1773 閱讀 1915

是不是覺得網路流的速度不盡人心?

目錄優化1就是我們空間的優化,有時候我們打.other是不是打得心煩氣燥?

我們可以在初始化時len=1,那麼以後要訪問k的other時只需要k^1就可以了,簡單來說就是二進位制最後一位由1變0,由0變1。

同時,有時候一條邊的x也不大有用,所以我們一樣可以省去,所以,這兩個變數的省去讓我們**簡潔易懂,又省空間,一舉兩得!

好了,當前弧優化是什麼呢(雖然有些大佬自己推出了,但自己可能也不知道自己加了優化!)?

根據最大流或zkw費用流(不會的可以點開我的部落格,我已經置頂了),每次搜過的邊基本上都是流不了的了,如果再去蒐會十分浪費。

那麼,我們可以用乙個陣列儲存每個點的搜到第幾條邊,每次用k慢慢跳到那跳邊,再開始搜,同時,最後,再從第一條邊開始搜到沒搜的那條邊的前一條,可以縮短一些時間!

但是,每次慢慢跳太慢,可以直接記錄是哪條邊,嘿嘿嘿,就不用前面慢慢找了!

當然,我給出最短的當前弧(最開始我打的那種長,但是稍稍快1ms左右qaq,其實也差不了多少,還不如最短的好)。

zkw流(只含遞迴部分,其他照舊,順便說一下,mcmf加不了這個優化!):

#include#include#includeusing  namespace  std;

typedef long long ll;

struct node

a[201000];int last[1000],len=1;

long long d[1100];

bool v[1100];

int n,m,st,ed;

ll cost=0;

int cur[1100];

inline void ins(int x,int y,ll c,ll k)

int list[1100],head,tail;/*佇列*/

inline bool spfa()

}} v[x]=false;

return ans;/*妥妥的像最大流*/

}int main()

ll zans=0;

while(spfa()==true)/*建圖完成!*/

printf("%lld %lld",zans,cost);

return 0;

}

最大流(dinic):

#include#includeusing  namespace  std;

struct node

a[210000];int last[11000],n,m,len=1/*用異或代替.other*/,st,ed;

int cur[11000];//當前弧

inline void ins(int x,int y,int c)

int h[11000],list[11000],head=1,tail=n;

inline bool bt_()

} head++;

} if(h[ed]>0)return true;

else return false;

}inline int mymin(int x,int y)

} if(s==0)h[x]=0;

return s;

}int main()

while(bt_()==true)ans+=find(st,999999999);

printf("%d\n",ans);

return 0;

}

網路流的部分優化

只是幫助自己記憶一下。isap應該是一種複雜度比較優秀的最大流演算法。具體優化分為兩部分,都是基於dinic之上的。1.1.1.當前弧優化,這種優化比較顯然,就是對於每一次流,每條邊一定是只經過一次的,那麼這樣就可以將每條流過的變在鏈式前向星中刪掉。2.2.2.高階版分層圖優化。這個現在不是很理解。...

新站優化的幾個小細節

關於網www.cppcns.com站建設初期或者是前期策劃時候需要注意的一些事情。站長小夥伴一般都會忽程式設計客棧略一些 小細節,但是正式因為這些小的細節,才會導致小夥伴的 權重得不到提公升,自然而然流量就沒有了。那麼小貓今天就來給大家說一說這些小細節,希望對大家有 所幫助,小貓每日白話,走起!td...

做好整站優化的幾個小技巧

今天再來與大程式設計客棧家談談seo優化的話題,如何做好整站優化相信不少朋友都有所研究,彭宇誠在很多站長論壇和qq 現大家討論最多的話題也是seo優化,所以在seo優化這塊兒,大家的表現是 即恨又愛 恨是因為咱們 的關鍵詞排名忽高忽低,影響了 的訪問量 愛是因為咱們 的訪www.cppcns.com...