网络吞吐量(network)
来源:互联网 发布:dnf一进去网络连接中断 编辑:程序博客网 时间:2024/06/06 13:16
题目
分析
过一遍spfa,把从点1到其他每一个点的最短路求出来,
接着递归把所有最短路径上的路径保留,其他的删掉。
对于保留的路径作为网络流的边,流量为无穷大,对于每个点拆点两个点之间的流量为吞吐量。
跑个网络流。
#include <fstream>#include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>const long long maxlongint=2147483647000000;using namespace std;long long dis[2100],a[600][600],f[2000][2000],d[600000],tot;long long v[2100];long long n,m,id;long long spfa(){ long long i,j,l; dis[1]=0; d[1]=1; long long head=0,tail=1,k; while(head<tail) { head++; k=d[head]; v[k]=true; for(i=1;i<=n;i++) { if(a[k][i]>0) { if(a[k][i]+dis[k]<dis[i]) { dis[i]=dis[k]+a[k][i]; if(v[i]) { v[i]=false; d[++tail]=i; } } } } }}long long dg(long long x,long long v1){ if(x==n) return 0; v[x]=false; for(long long i=2;i<=n;i++) { if(a[x][i]<maxlongint) if(v1+a[x][i]==dis[i]) { f[x+n][i]=maxlongint; if(v[i]) dg(i,dis[i]); } }}bool bfs(){ memset(dis,0,sizeof(dis)); long long i,j,l; d[1]=1; long long head=0,tail=1,k; while(head<tail) { k=d[++head]; for(i=2;i<=n+n;i++) { if(f[k][i]>0 && dis[i]==0) { dis[i]=dis[k]+1; d[++tail]=i; } } } if(dis[n+n]) return true; else return false;}long long aug(long long x,long long y){ if(x==n+n) return y; long long o; for(long long i=1;i<=n+n;i++) { if(f[x][i]>0 && dis[x]+1==dis[i]) { o=aug(i,min(y,f[x][i])); if(o>0) { f[x][i]-=o; f[i][x]+=o; return o; } } } return 0;}int main(){ scanf("%lld%lld",&n,&m); long long i,j,k,l,x,y,z; for(i=1;i<=n;i++) { dis[i]=maxlongint; for(j=1;j<=n;j++) { a[i][j]=maxlongint; } } for(i=1;i<=m;i++) { scanf("%lld%lld%lld",&x,&y,&z); if(x>y) { j=x; x=y; y=j; } if(x==1) a[x][y]=min(a[x][y],z);else if(y==n) a[x][y]=min(a[x][y],z);else a[y][x]=a[x][y]=min(a[x][y],z); } memset(v,true,sizeof(v)); spfa(); memset(v,true,sizeof(v)); memset(f,0,sizeof(f)); dg(1,0); long long ans,t=99; memset(v,0,sizeof(v)); for(i=1;i<=n;i++) { scanf("%lld",&f[i][i+n]); if(i==1 || i==n) f[i][i+n]=maxlongint; } ans=0; while(bfs()) { ans+=aug(1,maxlongint); } cout<<ans; return 0;}
1 0
- 网络吞吐量(network)
- 网络吞吐量
- 网络吞吐量
- bzoj-3931 网络吞吐量
- bzoj3931[CQOI2015]网络吞吐量
- bzoj3931【CQOI2015】网络吞吐量
- BZOJ3931网络吞吐量
- 3931: [CQOI2015]网络吞吐量
- 3931: [CQOI2015]网络吞吐量
- [CQOI2015]网络吞吐量
- 3931: [CQOI2015]网络吞吐量
- 【CQOI2015】网络吞吐量
- 网络的吞吐量
- [祥解]CHARIOT测试网络吞吐量
- bzoj 3931: [CQOI2015]网络吞吐量
- BZOJ3931 网络吞吐量(最大流)
- 洛谷 P3171 [CQOI2015]网络吞吐量
- 洛谷 P3171 [CQOI2015]网络吞吐量
- Caffe安装:Ubuntu14.04+caffe+cuda7.0+cudnnv3.0
- 高级软件工程师之路-磁盘
- ROS安装
- sql语言及sql分类
- 关于网络安全那些大事
- 网络吞吐量(network)
- GetMemory函数的经典错误
- Jquery李炎恢—60 Ajax提问【26】
- String类的详细介绍和Stringbuffer、Stringbuilder 类的简单介绍
- Android基于环信SDK开发IM即时聊天(二)
- NYOJ523亡命逃窜
- NIO与传统IO的区别
- MATALB打出复杂的上标、希腊字母等
- 魔鬼的晚餐