zkw费用流
期末结束,竞赛生活继续开始,先怒刷完寒假作业再说
至于期末考试,数学跪惨,各种哦智障错,还有我初中常用的建系大法居然被自己抛至脑后,看来学的还是不扎实,以后数学要老老实实学。物理被永哥黑了两分,然后很庆幸自己计算题没错,化学又犯了看A选C的毛病,但就算这不算也考的很不理想,归结下来是因为做题速度太慢,需要在寒假练习速度与正确性(化学二卷正确率还是可以的,哈哈哈),英语因为没时间写作文,导致作文得了七分(哭死),而且智障课内完型还错了,原因是图卡时候速度太快,完型最后两题两个D写连起来了,导致填成了两个B。。。生物我已经知足了,但是智障与审题还是丢了分。这回比八班总班平高了6分,虽然感觉自己很虚,但面对成绩还是可以的,慢慢进步吧。
然后刚学了zkw费用流,这个与普通费用流算法的区别就在于spfa的时候是从汇点到源点做spfa,好像这样能剪一剪枝,排除从源点分出的一些无用的分叉,还有找增广路时是一次找一大坨,类似dinic,下面贴代码:
#include<iostream> #include<algorithm> #include<cmath> #include<cstring> #include<queue> #include<cstdio> using namespace std; typedef long long LL; inline int read() { ,f=;char c=getchar(); ;c=getchar();} +c-';c=getchar();} return x*f; } ; ; int first[maxn],n,m,vis[maxn],dis[maxn],a,b,c,d,ans; queue <int> Q; struct Edge { int u,v,f,w,next; Edge() {} Edge(int _1,int _2,int _3,int _4,int _5) : u(_1),v(_2),f(_3),w(_4),next(_5) {} }e[maxn]; void addEdge(int i,int a,int b,int c,int d) { e[i]=Edge(a,b,c,d,first[a]); first[a]=i; } bool spfa() { memset(vis,,sizeof(vis)); ;i<=n;i++)dis[i]=oo; while(Q.size())Q.pop(); dis[n]=;vis[n]=;Q.push(n); while(Q.size()) { int now=Q.front();Q.pop(); ;i=e[i].next) ].f && dis[now]+e[i^].w<dis[e[i].v]) { dis[e[i].v]=dis[now]+e[i^].w; if(!vis[e[i].v]) { vis[e[i].v]=; Q.push(e[i].v); } } vis[now]=; } ]!=oo; } int dfs(int x,int flow) { vis[x]=; if(x==n)return flow; ; ;i=e[i].next) if(dis[e[i].v]==dis[x]-e[i].w && e[i].f && !vis[e[i].v]) { now=flow-used; now=dfs(e[i].v,min(now,e[i].f)); ans+=now*e[i].w; e[i].f-=now; e[i^].f+=now; used+=now; if(used==flow)return flow; } return used; } void zkw() { while(spfa()) { vis[n]=; while(vis[n]) { memset(vis,,sizeof(vis)); dfs(,oo); } } } int main() { memset(first,-,sizeof(first)); n=read();m=read(); ;i<m;i++) { a=read();b=read();c=read();d=read(); addEdge(*i,a,b,c,d); addEdge(*i+,b,a,,-d); } zkw(); printf("%d",ans); ; }
明天就要冬令营了,加油啊!!
zkw费用流的更多相关文章
- zkw费用流+当前弧优化
zkw费用流+当前弧优化 var o,v:..] of boolean; f,s,d,dis:..] of longint; next,p,c,w:..] of longint; i,j,k,l,y, ...
- 学习了ZKW费用流
所谓ZKW费用流,其实就是Dinic. 若干年前有一个人发明了最小增广路算法,每次用BFS找一条增广路,时间O(nm^2) 然后被DinicD飞了:我们为什么不可以在长度不变时多路增广呢?时间O(n^ ...
- 【zkw费用流】[网络流24题]餐巾计划问题
题目描述 一个餐厅在相继的N天里,第i天需要Ri块餐巾(i=l,2,-,N).餐厅可以从三种途径获得餐巾. (1)购买新的餐巾,每块需p分: (2)把用过的餐巾送到快洗部,洗一块需m天,费用需f分(f ...
- CSU 1948: 超级管理员(普通费用流&&zkw费用流)
Description 长者对小明施加了膜法,使得小明每天起床就像马丁的早晨一样. 今天小明早上醒来发现自己成了一位仓管员.仓库可以被描述为一个n × m的网格,在每个网格上有几个箱子(可能没有).为 ...
- BZOJ2673 [Wf2011]Chips Challenge 费用流 zkw费用流 网络流
https://darkbzoj.cf/problem/2673 有一个芯片,芯片上有N*N(1≤N≤40)个插槽,可以在里面装零件. 有些插槽不能装零件,有些插槽必须装零件,剩下的插槽随意. 要求装 ...
- 图论-zkw费用流
图论-zkw费用流 模板 这是一个求最小费用最大流的算法,因为发明者是神仙zkw,所以叫zkw费用流(就是zkw线段树那个zkw).有些时候比EK快,有些时候慢一些,没有比普通费用流算法更难,所以学z ...
- zkw费用流 学习笔记
分析 记\(D_i\)为从\(S\)出发到\(i\)的最短路 最短路算法保证, 算法结束时 对于任意存在弧\((i,j)\)满足\(D_i + c_{ij}\ge D_j\) ① 且对于每个 \(j\ ...
- P4015 运输问题【zkw费用流】
输入输出样例 输入 #1复制 2 3 220 280 170 120 210 77 39 105 150 186 122 输出 #1复制 48500 69140zuixiaofeiyo 说明/提示 1 ...
- HDU 4744 Starloop System(ZKW费用流)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4744 题意:三维空间n个点,每个点有一个wi值.每对点的距离定义为floor(欧拉距离),每对点之间建 ...
随机推荐
- TFS Services 集成Docker
随着Docker的爆发,越来越多软件研发团体开始享用和受益于Docker系统体系带来的巨大好处.Docker的使用,除了减少软硬件成本的立竿见影效果,更是对软件生命周期过程开发.测试.生成部署和运维整 ...
- Android屏幕适配问题详解
上篇-Android本地化资源目录详解 :http://www.cnblogs.com/steffen/p/3833048.html 单位: px(像素):屏幕上的点. in(英寸):长度单位. mm ...
- .Net程序员学用Oracle系列(1):导航目录
本人从事基于 Oracle 的 .Net 企业级开发近三年,在此之前学习和使用的都是 (MS)SQL Server.未曾系统的了解过 Oracle,所以长时间感到各种不习惯.不方便.怪异和不解,常会遇 ...
- ios 获取融云token
聊聊iOS做融云时重要的一步,获取token.token应该从服务端拿这样你的appSecret就不容易暴露.但有时开发需要也要自己先获取一个token也是可以的.请求方式有很多随你便喽,C哥(&qu ...
- 用PopWindow做下拉框
最近在做下拉框,本来想用spinner,可是spinner达不到项目要求,跟同学同事问了一圈,都在用popwindow, 网上看了一下,popwindow挺简单的,可定制性挺强的,符合我的要求,所以, ...
- python2.x urllib2和urllib的使用
1.最简单用法 urlopen(url, data=None, timeout=socket._GLOBAL_DEFAULT_TIMEOUT,...) import urllib2 import ur ...
- JavaScript中String.prototype.replace() 方法的使用
摘抄于:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/String/replace ...
- Web框架——Django笔记
Web框架--Django笔记 MVC和MTV MVC:Model.View.Controller MTV:Model.Template.View Django--MTV 1.创建Django程序 ...
- 最全js 放大镜效果
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- c# 强制退出程序
引用:http://blog.csdn.net/tanhua103292/article/details/4283203 1.强制退出WinForm程序之Application.Exit和Enviro ...