BZOJ 3931 CQOI2015 网络吞吐量 Dijkstra+网络流
题目大意见http://pan.baidu.com/s/1o6zajc2
用Dijkstra跑出最短路图,然后拆点跑网络流即可
这水题我TM还WA了两次是不是省选要滚粗了
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#define M 1010
#define S 0
#define T (M-1)
#define INF 0x3f3f3f3f3f3f3f3fll
#define P1(x) ((x)*2-1)
#define P2(x) ((x)<<1)
using namespace std;
int n,m;
namespace Origin_Graph{struct abcd{int to,next;long long f;}table[100100<<1];int head[M],tot;long long f[M],g[M];void Add(int x,int y,long long z){table[++tot].to=y;table[tot].f=z;table[tot].next=head[x];head[x]=tot;}void Dijkstra(long long f[],int s){static bool v[M];int i,j,k;memset(f,0x3f,sizeof(f[0])*M);memset(v,0,sizeof v);f[s]=0;for(i=1;i<=n;i++){long long temp=INF;for(j=1;j<=n;j++)if(!v[j]&&f[j]<=temp)temp=f[j],k=j;v[k]=true;for(j=head[k];j;j=table[j].next)f[table[j].to]=min(f[table[j].to],f[k]+table[j].f);}}
}
namespace Max_Flow{struct abcd{int to,next;long long f;}table[100100<<1];int head[M],tot=1;int dpt[M];void Add(int x,int y,long long z){table[++tot].to=y;table[tot].f=z;table[tot].next=head[x];head[x]=tot;}void Link(int x,int y,long long z){Add(x,y,z);Add(y,x,0);}bool BFS(){static int q[M];int i,r=0,h=0;memset(dpt,-1,sizeof dpt);dpt[S]=1;q[++r]=S;while(r!=h){int x=q[++h];for(i=head[x];i;i=table[i].next)if(table[i].f&&!~dpt[table[i].to]){dpt[table[i].to]=dpt[x]+1;q[++r]=table[i].to;if(table[i].to==T)return true;}}return false;}long long Dinic(int x,long long flow){int i;long long left=flow;if(x==T) return flow;for(i=head[x];i&&left;i=table[i].next)if(table[i].f&&dpt[table[i].to]==dpt[x]+1){long long temp=Dinic(table[i].to,min(left,table[i].f));left-=temp;table[i].f-=temp;table[i^1].f+=temp;}if(left) dpt[x]=-1;return flow-left;}
}
int main()
{using namespace Origin_Graph;int i,x,y,z;cin>>n>>m;for(i=1;i<=m;i++){scanf("%d%d%d",&x,&y,&z);Add(x,y,z);Add(y,x,z);}Dijkstra(f,1);Dijkstra(g,n);for(x=1;x<=n;x++)for(i=head[x];i;i=table[i].next)if(f[x]+table[i].f+g[table[i].to]==f[n])Max_Flow::Link(P2(x),P1(table[i].to),INF);for(i=1;i<=n;i++){scanf("%d",&x);Max_Flow::Link(P1(i),P2(i),x);}Max_Flow::Link(S,P2(1),INF);Max_Flow::Link(P1(n),T,INF);long long ans=0;while( Max_Flow::BFS() )ans+=Max_Flow::Dinic(S,INF);cout<<ans<<endl;return 0;
}
BZOJ 3931 CQOI2015 网络吞吐量 Dijkstra+网络流相关推荐
- [BZOJ 3931][CQOI2015]网络吞吐量(SPFA+网络流)
Description 路由是指通过计算机网络把信息从源地址传输到目的地址的活动,也是计算机网络设计中的重点和难点.网络中实现路由转发的硬件设备称为路由器.为了使数据包最快的到达目的地,路由器需要选择 ...
- 洛谷3171 网络吞吐量(网络流)
t开成n结果cur赋值的时候也只赋值到t令人智熄 [题目分析] 好吧我承认这个错误真的呵呵........ 题目有那~~~~~么长,然后画画图这道题就基本看出正解了,再一看数据范围,n<=500 ...
- 网络吞吐量对网络的影响
如今,大多数组织对网络可靠性特别感兴趣,因为云和 SaaS 应用程序已经变得带宽繁重.这种情况要求监视应详细且持续,以便您确定网络如何影响用户体验以及何时实施任务关键型计划. 虽然我们需要考虑各种特性 ...
- 华为交换机测试吞吐量软件,【精选】ixchariot网络吞吐量测试软件.pdf
[精选]ixchariot网络吞吐量测试软件 0:00:02.0 0:00:00.3 0:00:00.6 0:00:01.8 90.50 60.50 30.50 0.50 0:00:00 0:00:2 ...
- 使用iPerf测试网络吞吐量
在测试网络吞吐量时,我们常见的方式都是通过远程拷贝一个文件来大致验证网络吞吐量,但是这种方式可能会受到磁盘自身吞吐量影响,所以我们采取 iperf 命令行工具可以避开受到其他因素影响.该工具可以在Li ...
- 使用iPerf进行网络吞吐量测试
iperf是一种命令行工具,用于通过测量服务器可以处理的最大网络吞吐量来诊断网络速度问题.它在遇到网络速度问题时特别有用,通过该工具可以确定哪个服务器无法达到最大吞吐量. 资源准备 需要root权限具 ...
- 使用iperf测试设备的网络吞吐量
iperf简介 iperf是一个基于Client/Server的网络性能测试工具,可以测试TCP,UDP和SCTP带宽质量,能够提供网络吞吐量信息,以及震动.丢包率,最大段和最大传输单元通统计信息,帮 ...
- bbr29_BBR 会降低网络吞吐量吗?
众所周知,BBR 在劣质网络情况下可以增大 TCP 连接速度,但是最近在自己家网络中的测试发现 BBR 并没有像我预期中工作的那么好,故发来 v2 问问大家,希望获得各位的建议. 先说一下这个问题发出 ...
- 实时SSH网络吞吐量测试
实时SSH网络吞吐量测试 文章目录 实时SSH网络吞吐量测试 一.安装 pv 软件 二.使用步骤 三.结果 一.安装 pv 软件 centos 需要epel 源安装pv 软件,debian 需要安装p ...
最新文章
- Mongodb异常关闭重启失败解决
- 一首歌的时间看懂荷兰三色旗问题
- 三菱变频器e700参数表_三菱Q系列PLC,用CCLink控制变频器正反转和多段速
- Mybatis常见面试题(10个必备面试题)
- WebUploader 设置单个文件上传
- 代理模式详解(静态代理和动态代理的区别以及联系)
- 温故知新,.Net Core遇见Blazor(FluentUI),属于未来的SPA框架
- 《深入浅出DPDK》读书笔记(三):NUMA - Non Uniform Memory Architecture 非统一内存架构
- 机器学习模型融合方法综述
- 视觉注意力的循环神经网络模型(Recurrent Models of Visual Attention)
- 阴阳师bug以及服务器维护问题,阴阳师业原火bug处理公告汇总
- 使用FlashFTP上传文件到指定服务器
- 禁忌搜索算法学习笔记
- TikZ绘图示例——尺规作图:过直线外一点作给定直线的平行线
- 从0到1构建计算机(4/12)--时序逻辑芯片:时序门、寄存器、RAM、计数器
- Java实现内存分配算法 FF(首次适应算法) BF(最佳适应算法)
- /usr/bin/ld: cannot find -lnl-genl-3
- Ansible常用配置及命令
- Schedule(贪心,任务调度)
- 商业汇票的背书、贴现与质押