生活随笔
收集整理的這篇文章主要介紹了
【USACO15DEC】最大流Max Flow
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題面
FJ給他的牛棚的N(2≤N≤50,000)個隔間之間安裝了N-1根管道,隔間編號從1到N。所有隔間都被管道連通了。
FJ有K(1≤K≤100,000)條運輸牛奶的路線,第i條路線從隔間si運輸到隔間ti。一條運輸路線會給它的兩個端點處的隔間以及中間途徑的所有隔間帶來一個單位的運輸壓力,你需要計算壓力最大的隔間的壓力是多少。
分析
樹上點差分模板。
代碼
#include<bits/stdc++.h>??using?namespace?std;??#define?N?500050??int?n,m,cnt,ans;??int?c[N],fa[N][20],dep[N],first[N];??struct?email??{??????int?u,v;??????int?nxt;??}e[N*4];??template<class?T>??inline?void?read(T?&x)??{??????x=0;int?f=1;static?char?c=getchar();???????while(c<'0'||c>'9')?{if(c=='-')f=-1;c=getchar();}??????while(c>='0'&&c<='9'){x=x*10+c-'0',c=getchar();}??????x*=f;??}????inline?void?add(int?u,int?v)??{??????e[++cnt].nxt=first[u];first[u]=cnt;??????e[cnt].u=u;e[cnt].v=v;??}????inline?void?pre(int?u,int?f)??{??????for(int?i=1;(1<<i)<=dep[u];i++)??????????fa[u][i]=fa[fa[u][i-1]][i-1];??????for(int?i=first[u];i;i=e[i].nxt)??????{??????????int?v=e[i].v;??????????if(v==f)continue;??????????dep[v]=dep[u]+1;??????????fa[v][0]=u;??????????pre(v,u);??????}?????}????inline?int?lca(int?x,int?y)??{??????if(dep[x]<dep[y])swap(x,y);??????int?t=dep[x]-dep[y];??????for(int?i=0;(1<<i)<=t;i++)??????????if((1<<i)&t)??????????????x=fa[x][i];??????if(x==y)return?x;??????for(int?i=19;i>=0;i--)??????????if(fa[x][i]!=fa[y][i])??????????????x=fa[x][i],y=fa[y][i];??????return?fa[x][0];??}????inline?void?dfs(int?u,int?f)??{??????for(int?i=first[u];i;i=e[i].nxt)??????{??????????int?v=e[i].v;??????????if(v==f)continue;??????????dfs(v,u);??????????c[u]+=c[v];??????}??????ans=max(ans,c[u]);??}????int?main()??{??????read(n),read(m);??????for(int?i=1;i<n;i++)??????{??????????int?u,v;??????????read(u),read(v);??????????add(u,v);add(v,u);??????}??????pre(1,0);??????for(int?i=1;i<=m;i++)??????{??????????int?s,t;??????????read(s),read(t);??????????c[s]++,c[t]++,c[lca(s,t)]--,c[fa[lca(s,t)][0]]--;??????}??????dfs(1,0);??????printf("%d\n",ans);??????return?0;????????}??
轉載于:https://www.cnblogs.com/NSD-email0820/p/9853237.html
總結
以上是生活随笔為你收集整理的【USACO15DEC】最大流Max Flow的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。