description
路由是指通過計算機網路把資訊從源位址傳輸到目的位址的活動,也是計算機網路設計中的重點和難點。網路中實現路由**的硬體裝置稱為路由器。為了使資料報最快的到達目的地,路由器需要選擇最優的路徑**資料報。例如在常用的路由演算法ospf(開放式最短路徑優先)中,路由器會使用經典的dijkstra演算法計算最短路徑,然後盡量沿最短路徑**資料報。現在,若已知乙個計算機網路中各路由器間的連線情況,以及各個路由器的最大吞吐量(即每秒能**的資料報數量),假設所有資料報一定沿最短路徑**,試計算從路由器1到路由器n的網路的最大吞吐量。計算中忽略**及傳輸的時間開銷,不考慮鏈路的頻寬限制,即認為資料報可以瞬間通過網路。路由器1到路由器n作為起點和終點,自身的吞吐量不用考慮,網路上也不存在將1和n直接相連的鏈路。input
輸入檔案第一行包含兩個空格分開的正整數n和m,分別表示路由器數量和鏈路的數量。網路中的路由器使用1到n編號。接下來m行,每行包含三個空格分開的正整數a、b和d,表示從路由器a到路由器b存在一條距離為d的雙向鏈路。output接下來n行,每行包含乙個正整數c,分別給出每乙個路由器的吞吐量。
輸出乙個整數,為題目所求吞吐量。sample input
7 10sample output hint1 2 2
1 5 2
2 4 1
2 3 3
3 7 1
4 5 4
4 3 1
4 6 1
5 6 2
6 7 1
1 100
20 50
20 60
1
對於100%的資料,n≤500,m≤100000,d,c≤10^9題解
半個月沒打**的辣雞手感導致打錯模版。。原圖spfa之後最短路上重建圖跑網路流,記得拆點。。
判一條邊能構成最短路,設這條邊連的點是u,v
d[u]+edge.c=d[v],該邊能構成最短路
之後u拆點v拆點,u出的點連向v進的點。。流量inf
輸入的吞吐量拆點,u進的點連向u出的點,流量為給出的值
inf要開大點。。因為這個10^9
#include
#include
#include
#include
#include
#include
using
namespace
std;
typedef
long
long ll;
const ll inf=1000000000000000ll;
struct node
a[1110000];int len,last[210000];
struct edgee[110000];
void ins(int x,int y,ll c)
void insx(int x,int y,ll c)
intlist[51000],n,m;
ll d[1100];
int head,tail;
bool v[1100];
queue
q;void spfa()}}
q.pop();
v[x]=false;
}}void build()
}int h[1100],st,ed;
bool bt_h()
}head++;
}if(h[ed]>0)return
true;
return
false;
}ll findflow(int x,ll f)
int main()
spfa();
build();
for(int i=1;i<=n;i++)
st=n*2+1;ed=n*2+2;
insx(1,1+n,inf);insx(n,n+n,inf);
insx(st,1,inf);insx(n+n,ed,inf);
ll ans=0;
while(bt_h())ans+=findflow(st,inf);
printf("%lld\n",ans);
return
0;}
BZOJ 3931 網路流 最短路)
傳送門 考慮網路流 注意到資料報走的是最短路,所以我們只需要考慮在最短路上的邊 由於最短路可能有多條,我們先跑一遍dijkstra,然後再 o m 遍歷每條邊 u,v,w 如果dist u dist v w,則這條邊肯定在最短路上 然後點的容量限制可以用拆點來解 常見套路 從u向u n連邊,容量為c...
BZOJ3931 網路吞吐量
time limit 10 sec memory limit 512 mb submit 1692 solved 697 submit status discuss 路由是指通過計算機網路把資訊從源位址傳輸到目的位址的活動,也是計算機網路設計中的重點和難點。網路中實現路由 的硬體裝置稱為路由器。為了...
zoj 2760 最短路 網路流
題意 求乙個有向圖起點到終點的邊不相交的最短路徑的條數。思路 曾經乙個求最短路的類似,這題你找出來所有的最短路所包含的邊就可以,然後跑一邊網路流即可 include using namespace std const int maxn 400 const int maxm 160000 const ...