time limit: 10 sec
memory limit: 512 mb
路由是指通過計算機網路把資訊從源位址傳輸到目的位址的活動,也是計算機網路設計中的重點和難點。網路中實現路由**的硬體裝置稱為路由器。為了使資料報最快的到達目的地,路由器需要選擇最優的路徑**資料報。例如在常用的路由演算法ospf(開放式最短路徑優先)中,路由器會使用經典的dijkstra演算法計算最短路徑,然後盡量沿最短路徑**資料報。現在,若已知乙個計算機網路中各路由器間的連線情況,以及各個路由器的最大吞吐量(即每秒能**的資料報數量),假設所有資料報一定沿最短路徑**,試計算從路由器1到路由器n的網路的最大吞吐量。計算中忽略**及傳輸的時間開銷,不考慮鏈路的頻寬限制,即認為資料報可以瞬間通過網路。路由器1到路由器n作為起點和終點,自身的吞吐量不用考慮,網路上也不存在將1和n直接相連的鏈路。
input
輸入檔案第一行包含兩個空格分開的正整數n和m,分別表示路由器數量和鏈路的數量。網路中的路由器使用1到n編號。接下來m行,每行包含三個空格分開的正整數a、b和d,表示從路由器a到路由器b存在一條距離為d的雙向鏈路。 接下來n行,每行包含乙個正整數c,分別給出每乙個路由器的吞吐量。
output
輸出乙個整數,為題目所求吞吐量。
sample input
7 101 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
1100
2050
2060
1
sample output
70
hint
對於100%的資料,n≤500,m≤100000,d,c≤10^9
#include#include#include#include#define maxn 400009
#define inf ((1ll<<63)-1)
#define ll long long
using namespace std;
ll head[maxn], nextx[maxn], point[maxn], now, p[maxn], flow[maxn];
ll n, m, value[maxn], dist[maxn], dis[maxn], x[maxn], y[maxn], v[maxn];
void add(ll x, ll y, ll v)
void add2(ll x, ll y, ll v)
void spfa(ll s)
; visit[s] = 1;
queueq;
q.push(s);
dist[s] = 0;
while (!q.empty())
} }
} } int bfs(ll s, ll t)
} }
return dis[t] != -1;
} ll dfs(ll s, ll d, ll t)
ll res = 0;
for (int i = head[s]; i && res < d; i = nextx[i])
} }
if (res == 0)
return res;
} int main()
spfa(1);
memset(head, 0, sizeof(head));
now = 0;
for (int i = 1; i <= m; i++)
if (dist[y[i]] + v[i] == dist[x[i]])
} ll b;
for (int i = 1; i <= n; i++)
ll ans = 0;
while (bfs(1 , n + n))
printf("%lld\n", ans);
return 0;
}
網路吞吐量詳解
簡單的講,對於p2p系統而言,當主機a到主機b傳送乙個檔案,任何時間瞬間的瞬時吞吐量都是主機b接收到該檔案的速率 以bps計算 如果檔案由f位元組成,主機b接收到所有f位元用去t秒,則檔案傳送的平均吞吐量是f t bps.舉個例子伺服器通過路由器 給客戶端訊息 想象位元是流體,而鏈路是管道,那麼吞吐...
吞吐量 併發量
併發數 吞吐量的概念最初用來衡量網路裝置的效能,後來推廣到伺服器及業務上評估系統的整體效能。一 網路裝置的併發數 吞吐量 併發數 concurrency 也叫併發連線數,指網路裝置所能處理的最大會話數量。這裡的會話數是指請求 響應一次會話。吞吐量 throughput 使用者請求是由乙個個資料報組成...
系統吞吐量
系統吞吐量 很多情況下,筆者經常聽見許多開發人員在壓力測試中經常提及吞吐量,但經過實際溝通來看,其實大部分開發人員並不能夠準確的理解和定位系統吞吐量或者評估系統吞吐量。簡單來說,吞吐量指的就是系統在乙個指定的時間範圍能,能夠處理的實際請求數量,比如系統以秒為單位,每一秒鐘就近可以處理多少使用者請求,...