flow

dinic 最大流(弧优化)

强颜欢笑 提交于 2019-12-02 23:12:28
Dinic-有当前弧优化 //STATUS:G++_AC_3891MS_8528KB #include<stdio.h> #include<stdlib.h> #include<string.h> #include<math.h> #include<iostream> #include<string> #include<algorithm> #include<vector> #include<queue> #include<stack> #include<map> using namespace std; #define LL long long #define Max(a,b) ((a)>(b)?(a):(b)) #define Min(a,b) ((a)<(b)?(a):(b)) #define mem(a,b) memset(a,b,sizeof(a)) #define lson l,mid,rt<<1 #define rson mid+1,r,rt<<1|1 const int MAX=20010,INF=0x3f3f3f3f; struct Edge{ int u,v,cap; }e[MAX*30]; int first[MAX],next[MAX*30],d[MAX],cur[MAX]; int n,m,s,t,mm; void adde1(int a,int b

Codechef Push the Flow!/PUSHFLOW (树链剖分)

匿名 (未验证) 提交于 2019-12-02 22:56:40
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_35649707/article/details/83010350 传送门 题解: 不错的树链剖分练习题。 又是毒瘤仙人掌,先把环缩起来,然后链剖维护重链上相邻的环的最小值。 对于轻边特殊处理,此时要对每个环再维护一个线段树。 时间复杂度 O ( n log 2 n ) O(n \log^2 n) O ( n lo g 2 n ) 。 # include <bits/stdc++.h> using namespace std ; typedef pair < int , int > pii ; const int RLEN = 1 << 18 | 1 ; inline char nc ( ) { static char ibuf [ RLEN ] , * ib , * ob ; ( ib == ob ) && ( ob = ( ib = ibuf ) + fread ( ibuf , 1 , RLEN , stdin ) ) ; return ( ib == ob ) ? - 1 : * ib ++ ; } inline int rd ( ) { char ch = nc ( ) ; int i = 0 , f = 1 ; while ( ! isdigit ( ch ) ) {

git flow

匿名 (未验证) 提交于 2019-12-02 22:56:40
git flow的基本使用 基本使用见 你为什么不用git flow 开发人员常用的场景 完成常规项目中的功能 git flow feature start 721 使用日常git命令提交修改,直至功能完成 git flow feature finish 721 这个动作会把 feature/721分支合并到dev分支,如果功能完成,可以push到远程dev进行测试 完成单独一个功能并测试 步骤和常规开发相同,但是可以push到远程git库 git flow feature publish 721 测试并修复bug git flow feature finish 721 紧急修复bug 使用hotfix来紧急修复bug git flow hotfix start 721 修复bug git flow hotfix finish 721 这就把修改完成的代码分别merge到了dev和master分支,为之后的发布做准备 代码发布 功能完成度很高的时候才做代码发布 git flow release start v0.1 允许有少量bugfix动作 git flow release finish v0.1 参考文档 你为什么不用git flow A successful Git branching model git以及git flow的介绍ppt github上的gitflow

SDN实验---Ryu的应用开发(三)流量监控

妖精的绣舞 提交于 2019-12-02 22:09:05
一:实现流量监控 (一)流量监控原理 其中控制器向交换机周期下发获取统计消息,请求交换机消息------是主动下发过程 流速公式:是(t1时刻的流量-t0时刻的流量)/(t1-t0) 剩余带宽公式:链路总带宽-流速--------是这一个这一个,例如s2-s3(不是一条,例如:h1->s1->s2->s3->h2)的剩余带宽 路径有效带宽是只:这一整条路径中,按照最小的剩余带宽处理 二:代码实现 (一)代码框架 from ryu.app import simple_switch_13 from ryu.controller.handler import set_ev_cls from ryu.controller import ofp_event from ryu.controller.handler import MAIN_DISPATCHER,DEAD_DISPATCHER class MyMonitor(simple_switch_13): #simple_switch_13 is same as the last experiment which named self_learn_switch ''' design a class to achvie managing the quantity of flow ''' def __init__(self,*args,*

GIT版本管理:Git Flow模型

萝らか妹 提交于 2019-12-02 21:52:32
#0 系列目录# 版本管理 SVN版本管理:场景命令实战 SVN版本管理:两种开发模式 GIT版本管理:场景命令实战 GIT版本管理:Git Flow模型 #1 Git Flow介绍# 我们都知道, 在 git 的分支功能相对 svn 确实方便许多, 而且也非常推荐使用分支来做开发 . 我的做法是每个项目都有2个分支, master 和 develop. master 分支是主分支, 保证程序有一个 稳定版本 , develop 则是开发用的分支, 几乎所有的功能开发, bug 修复都在这个分支上, 完成后 再合并回 master . 但是情况并不是这么简单. 有时当我们正在开发一个功能, 但程序突然出现 bug 需要及时去修复的时候, 这时要切回 master 分支, 并基于它创建一个 hotfix 分支. 有时我们在开发一个功能时, 需要停下来去开发另一个功能. 而且所有这些问题都出现 的时候, 发布也会成为比较棘手问题. 也就是说, git branch 功能很强大, 但是没有一套模型告诉我们应该怎样在开发的时候善用这些分支 。而Git Flow模型就是要告诉我们怎么更好地使用Git分支。 简单来说, git-flow 就是在 git branch git tag基础上封装出来的代码分支管理模型 ,把实际开发模拟成 master develop feature release

【BZOJ3996】[TJOI2015]线性代数(最小割)

若如初见. 提交于 2019-12-02 20:06:17
洛谷 题意: 给出一个 \(n*n\) 的矩阵 \(B\) ,再给出一个 \(1*n\) 的矩阵 \(C\) 。 求一个 \(1*n\) 的 \(01\) 矩阵 \(A\) ,使得 \(D=(A\cdot B-C)\cdot A^T\) 最大。 思路: 化简最后得: \[ \sum_{i=1}^n\sum_{j=1}^nB_{i,j}A_iA_j-\sum_{i=1}^nA_iC_i \] 之后考虑所有的 \(A_i\) 都为 \(1\) ,现在要将一部分 \(A_i\) 变为 \(0\) ,最后的损失最小。 因为最后的 \(A\) 为 \(01\) 矩阵,显然最后结果为一个集合;结合损失最小,考虑最小割。 式子中只与 \(A_i,A_j\) 两个元素有关,单独考虑这两个元素,发现是一个很经典的最小割模型。然后解下方程就没了。 代码如下: /* * Author: heyuhhh * Created Time: 2019/10/29 17:17:13 */ #include <bits/stdc++.h> #define MP make_pair #define fi first #define se second #define sz(x) (int)(x).size() #define all(x) (x).begin(), (x).end() #define INF

vue系列--- 认识Flow(七)

拟墨画扇 提交于 2019-12-02 19:30:44
1. 什么是Flow? Flow 是javascript代码的静态类型检查工具。它是Facebook的开源项目(https://github.com/facebook/flow),Vue.js(v2.6.10的源码使用了Flow做了静态类型检查。因此我们现在先来了解下Flow的基本知识,有助于我们分析源码。 2. 为什么要用Flow? javascript是弱类型语言,弱类型体现在代码中的变量会根据上下文环境自动改变的数据类型。那么这种弱类型有优点也有缺点,优点是我们容易学习和使用,缺点是:开发者经常因为赋值或传值导致类型错误。造成一些和预期不一样的结果。在代码编译的时候可能不会报错,但是在运行阶段就可能会出现各种奇怪的bug。因此在大型项目中我们有必要使用Flow来做代码静态类型检查。 下面我们从一个简单的demo说起。比如如下代码: function add (x) { return x + 10; } var a = add('Hello!'); console.log(a); // 输出:Hello!10 如上代码,x这个参数,我们在add函数声明的时候,其实我们希望该参数是一个数字类型,但是在我们代码调用的时候则使用了字符串类型。导致最后的结果为 "Hello!10"; 为什么会出现这种结果呢?那是因为 加号(+)在javascript语言中,它既有作为数字的加运算符外

【BZOJ3691】游行 最小可相交路径覆盖转化

时光毁灭记忆、已成空白 提交于 2019-12-02 18:17:37
因为C是不断变化的而且C是和点权相关和边权无关 所以我们可以MCMF但是MCMF的时候不能与C相关 再分析问题 我们可以认为每条路径S->T只覆盖T这个终点 因为题目中说了如果Si != Ti 要多付出 C的代价 假设我们走过的路径形成了一个环则刚好 边数=点数 覆盖完了 如果走过的路径不是一个环 则还有起点没有覆盖 此时我们可以把它当作没有途径的城市 给他补偿 同样为C 所以我们把原图拆成左边出点 右边入点 传递闭包后建图 这样每次MCMF增广的代价是不递减的 并且每增广一次多覆盖一个点 所以我们把每次增广的代价放到一个数组里面 每次询问我们二分C在数组里的位置,在C之前的点我们利用路径覆盖 在C及C之后的点我们用C去补偿它 #include<bits/stdc++.h> using namespace std; #define ll long long #define MAX 255 inline int read() { int x = 0; bool t = false; char ch = getchar(); while ((ch < '0' || ch > '9') && ch != '-') ch = getchar(); if (ch == '-') t = true, ch = getchar(); while (ch <= '9' && ch >= '0')

最小费用最大流

放肆的年华 提交于 2019-12-02 15:08:07
传送门: https://www.luogu.org/problem/P3381 反正就是求最大流+最短路但是弱得一批的我还是不会用Dijkstra做于是放的是最好看最简单的SPFA的代码 相信蒟蒻最懂你的需要 1 #include<bits/stdc++.h> 2 using namespace std; 3 int n,m; 4 struct edge{ 5 int to,nxt,flow,dis; 6 }e[100010];int tot=-1; 7 int first[100010]; 8 int dis[100010],flow[100010]; 9 bool vis[100010]; 10 int pre[100010],last[100010]; 11 int s,t; 12 int maxflow,mincost; 13 inline void add_edge(int a,int b,int c,int d) 14 { 15 e[++tot].to=b; 16 e[tot].flow=c; 17 e[tot].nxt=first[a]; 18 e[tot].dis=d; 19 first[a]=tot; 20 } 21 inline int kd() 22 { 23 int x=0,f=1;char ch=getchar(); 24 while(ch<'0'|

hadoop工作流引擎azkaban

为君一笑 提交于 2019-12-02 14:56:09
介绍 Azkaban是twitter出的一个任务调度系统,操作比Oozie要简单很多而且非常直观,提供的功能比较简单。Azkaban以Flow为执行单元进行定时调度,Flow就是预定义好的由一个或多个可存在依赖关系的Job组成的工作流。Azkaban的官方主页是 http://azkaban.github.io/azkaban2/ ,它的的主要特点有下面几个: 兼容所有Hadoop版本(1.x,2.x,CDH) 可以通过WebUI进行管理配置,操作方便 可以通过UI配置定时调度 扩展性好,可针对某一问题开发组件(目前有三个插件HDFSBrowser,JobtypePlugins和HadoopSecurityManager) 有权限管理模块 可以通过WebUI跟踪Flow或者Job的执行情况 可以设置邮件提醒 可以为定时Flow或者Flow中的某个Job配置执行时间长度的控制,如果执行时间超过了所设的时间,可以发送警告邮件给相关人员或者Kill掉相应设置的Flow或Job 可以重试失败Job Azkaban也有一些局限性(尚待挖掘),例如任务之间的依赖,不能够指定部分完成(比如我们希望任务A依赖于B,但是并不是B完全执行完成A才可以启动,而是B的某个阶段完成的话就可以启动A) Azkaban主要是解决Hadoop Job的依赖关系,它包括三个组件,组件之间的关系如下图所示