題意:求乙個有向圖起點到終點的邊不相交的最短路徑的條數。
思路:曾經乙個求最短路的類似,這題你找出來所有的最短路所包含的邊就可以,然後跑一邊網路流即可
#include
using
namespace
std;
const
int maxn=400;
const
int maxm=160000;
const
int inf=0x3f3f3f3f;
struct edge
edge[maxm*4];
int head[maxn],cnt;
void add_edge(int u,int v,int w)
int dis[maxn];
int diss[maxn][maxn];
int vis[maxn];
int numh[maxn],h[maxn],curedge[maxn],pre[maxn];
int sap(int s,int t,int n)
numh[0]=n;
u=s;
while(h[s]//printf("%d\n",h[s]);
//printf("1111\n");
if(u==t)
}for(i=s;i!=t;i=edge[curedge[i]].v)
flow_ans+=cur_flow;
u=neck;
}for(i=curedge[u];i!=-1;i=edge[i].nxt)
}if(i!=-1)
else
}h[u]=tmp+1;
++numh[h[u]];
if(u!=s)
u=pre[u];}}
return flow_ans;
}int main ()
}for(int k=1;k<=n;k++)}}
int s,t;
scanf("%d%d",&s,&t);
s++,t++;
if(n==1||s==t)
for(int i=1;i<=n;i++)}}
int res=sap(s,t,n);
printf("%d\n",res);
}return
0;}
bzoj3931 網路流 最短路 網路吞吐量
description 路由是指通過計算機網路把資訊從源位址傳輸到目的位址的活動,也是計算機網路設計中的重點和難點。網路中實現路由 的硬體裝置稱為路由器。為了使資料報最快的到達目的地,路由器需要選擇最優的路徑 資料報。例如在常用的路由演算法ospf 開放式最短路徑優先 中,路由器會使用經典的dijk...
HDU 5889 最短路加網路流
題意 乙個無向圖,每條邊距離為1,從n走到1,的最短路。然後每個路有個價值,求一下最小割 思路 裸題。手殘bfs總是寫錯,後來換成spfa列舉一下就好了。注意!新圖建單向邊來跑最短路。include include include include include include using name...
網路流24題 汽車加油行駛 最短路
為什麼網路流24題裡會有最短路 原題走這裡 題目描述比較繁瑣,重點在於如何建圖 題目中乙個重要的點就是 加滿油後可以行駛k格 可以將其視作為讓汽車油量變為k,汽車每走一格就消耗一單位油,沒油時就要再加油 k 10一看就知道是分層圖最短路 1 k每一種油量建一層圖 每走一格就會少一單位油,也就是連到下...