期末结束,竞赛生活继续开始,先怒刷完寒假作业再说

至于期末考试,数学跪惨,各种哦智障错,还有我初中常用的建系大法居然被自己抛至脑后,看来学的还是不扎实,以后数学要老老实实学。物理被永哥黑了两分,然后很庆幸自己计算题没错,化学又犯了看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费用流的更多相关文章

  1. zkw费用流+当前弧优化

    zkw费用流+当前弧优化 var o,v:..] of boolean; f,s,d,dis:..] of longint; next,p,c,w:..] of longint; i,j,k,l,y, ...

  2. 学习了ZKW费用流

    所谓ZKW费用流,其实就是Dinic. 若干年前有一个人发明了最小增广路算法,每次用BFS找一条增广路,时间O(nm^2) 然后被DinicD飞了:我们为什么不可以在长度不变时多路增广呢?时间O(n^ ...

  3. 【zkw费用流】[网络流24题]餐巾计划问题

    题目描述 一个餐厅在相继的N天里,第i天需要Ri块餐巾(i=l,2,-,N).餐厅可以从三种途径获得餐巾. (1)购买新的餐巾,每块需p分: (2)把用过的餐巾送到快洗部,洗一块需m天,费用需f分(f ...

  4. CSU 1948: 超级管理员(普通费用流&&zkw费用流)

    Description 长者对小明施加了膜法,使得小明每天起床就像马丁的早晨一样. 今天小明早上醒来发现自己成了一位仓管员.仓库可以被描述为一个n × m的网格,在每个网格上有几个箱子(可能没有).为 ...

  5. BZOJ2673 [Wf2011]Chips Challenge 费用流 zkw费用流 网络流

    https://darkbzoj.cf/problem/2673 有一个芯片,芯片上有N*N(1≤N≤40)个插槽,可以在里面装零件. 有些插槽不能装零件,有些插槽必须装零件,剩下的插槽随意. 要求装 ...

  6. 图论-zkw费用流

    图论-zkw费用流 模板 这是一个求最小费用最大流的算法,因为发明者是神仙zkw,所以叫zkw费用流(就是zkw线段树那个zkw).有些时候比EK快,有些时候慢一些,没有比普通费用流算法更难,所以学z ...

  7. zkw费用流 学习笔记

    分析 记\(D_i\)为从\(S\)出发到\(i\)的最短路 最短路算法保证, 算法结束时 对于任意存在弧\((i,j)\)满足\(D_i + c_{ij}\ge D_j\) ① 且对于每个 \(j\ ...

  8. P4015 运输问题【zkw费用流】

    输入输出样例 输入 #1复制 2 3 220 280 170 120 210 77 39 105 150 186 122 输出 #1复制 48500 69140zuixiaofeiyo 说明/提示 1 ...

  9. HDU 4744 Starloop System(ZKW费用流)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4744 题意:三维空间n个点,每个点有一个wi值.每对点的距离定义为floor(欧拉距离),每对点之间建 ...

随机推荐

  1. CoreCRM 开发实录 —— 单元测试、测试驱动开发和在线服务

    测试不是问题,问题是怎么测试. ## 单元测试 我认为单元测试已经是无可争议的最佳开发实践之一.但是很多人并不同意这个观点.他们的说法无非是:写测试需要花很多时间,需求又经常变动,一但变动,一大片测试 ...

  2. Linux centos7环境下安装JDK的步骤详解

    Linux centos7环境下安装JDK的步骤详解 测试root用户下JAVA版本 输入命令:   java –version 1.先到Oracle官网里下载好jdk,网址如下: http://ww ...

  3. OGG学习笔记02-单向复制配置实例

    OGG学习笔记02-单向复制配置实例 实验环境: 源端:192.168.1.30,Oracle 10.2.0.5 单实例 目标端:192.168.1.31,Oracle 10.2.0.5 单实例 1. ...

  4. 利刃 MVVMLight 2:Model、View、ViewModel结构以及全局视图模型注入器的说明

         上一篇我们已经介绍了如何使用NuGet把MVVMLight应用到我们的WPF项目中.这篇我们来了解下一个基本的MVVMLight框架所必须的结构和运行模式. MVVMLight安装之后,我们 ...

  5. 六、spark常见问题总结(转载)

    问题导读 1.当前集群的可用资源不能满足应用程序的需求,怎么解决? 2.内存里堆的东西太多了,有什么好办法吗?         1.WARN TaskSchedulerImpl: Initial jo ...

  6. http协议的状态码 403 404 301 302 200 500 502 504 报错显示

    在网站建设的实际应用中,容易出现很多小小的失误,就像MySQL当初优化不到位,影响整体网站的浏览效果一样,其实,网站的常规http状态码的表现也是一样,Google无法验证网站几种解决办法,提及到由于 ...

  7. mysql的数据类型与列属性

  8. spring+springmvc+mybatis整合框架搭建

    由于例子是基于Maven搭建的,所以首先是pom.xml文件的依赖信息: <project xmlns="http://maven.apache.org/POM/4.0.0" ...

  9. 第一百一十九节,JavaScript事件入门

    JavaScript事件入门 学习要点: 1.事件介绍 2.内联模型 3.脚本模型 4.事件处理函数 JavaScript事件是由访问Web页面的用户引起的一系列操作,例如:用户点击.当用户执行某些操 ...

  10. 手机端rem自适应布局实例

    首先要书写核心js代码,控制住页面的初始大小:我是以750px(即iPhone6)的标准,设置font-size:100px:<script>        (function (doc, ...