BZOJ P3931 CQOI2015 網路吞吐量

2021-07-29 15:25:57 字數 1099 閱讀 8570

先跑一遍最短路

把最短路上的點建乙個圖,

然後需要拆點,因為權值在點上面

然後拆點限制流量

最後跑一邊最大流就可以了

#include#include#include#include#includeusing namespace std;

int head[100003],exhead[100003],q[400003],d[400003];

struct mapa[400003],exa[400003];

int edge,exedge,p;

inline void add(int s,int t,long long f)

inline void exadd(int s,int t,long long f)

inline bool bfs()

} }if(d[p]>=0)else

}inline long long dfs(int now,long long f)

long long t=f;

for(int i=head[now];i;i=a[i].next)

} return t-f;

}inline long long dinic()

return fanhui;

}long long dis[501];

bool v[501];

inline void spfa()

memset(v,false,sizeof(v));

queueq;

while(!q.empty())

q.push(1);

dis[1]=0;

v[1]=true;

while(!q.empty())

}} }

}int b[100003];

int main()

spfa();

p=n;

for(int i=1;i<=n;i++)

add(i,i+p,lim);

add(i+p,i,0);

} for(int i=1;i<=exedge;i++)

}p=n*2;

long long ans=dinic();

cout<

3931 CQOI2015 網路吞吐量

time limit 10 sec memory limit 512 mb submit 1536 solved 628 submit status discuss 路由是指通過計算機網路把資訊從源位址傳輸到目的位址的活動,也是計算機網路設計中的重點和難點。網路中實現路由 的硬體裝置稱為路由器。為了...

3931 CQOI2015 網路吞吐量

題目鏈結 題目大意 求最短路樹上的最大流 題解 定義最短路樹如下 從源點1經過邊集t到任意一點i有且僅有一條路徑,且這條路徑是整個圖1到i的最短路徑,邊集t構成最短路樹。然後建圖就好了 我的收穫 最短路樹的應用 include include include include include usin...

CQOI2015 網路吞吐量

路由是指通過計算機網路把資訊從源位址傳輸到目的位址的活動,也是計算機網路設計中的重點和難點。網路中實現路由 的硬體裝置稱為路由器。為了使資料報最快的到達目的地,路由器需要選擇最優的路徑 資料報。例如在常用的路由演算法ospf 開放式最短路徑優先 中,路由器會使用經典的dijkstra演算法計算最短路...