首页 > TAG信息列表 > ZKW

zkw线段树学习笔记

zkw线段树,我的信仰! 不过zkw线段树究竟是什么呢?一起来看一下吧。 zkw线段树是什么 zkw线段树,顾名思义,是一种线段树。 他是线段树的非递归形式,虽然没递归版线段树那么通用,但它的常数与码量吊打递归版线段树。 zkw线段树的实现 说了那么多,不会写也没用啊。 递归式线段树自上往下

关于费用流

有3种做法:bf单路,bf多路,zkw bf单路肯定不如bf多路好。 这里对比bf多路和zkw做法。 在图比较密集时,bf多路肯定是优于bf单路的。 因为这时bf的速度较慢,图比较稠密,所以肯定能够找到比较多增广路。 多路增广可以比单路增广找到更多增广路。 zkw的做法的核心:使用类似km的做法,一点一点的

zkw树

https://sshwy.gitee.io/2018/10/01/55406/ https://www.cnblogs.com/Judge/p/9514862.html https://blog.csdn.net/DREAM_yao/article/details/108801613 #include<vector> #include<iostream> #include<math.h> #include<limits.h> using namespace

zkw线段树 小记(咕咕咕)

只保证自己看得懂。 1. 建树 设数组大小为 \(n\) ,叶结点个数为 \(N\) 。 zkw线段树为一颗满二叉树,故 \(N = 2^{\left\lceil\log_2 n\right\rceil}\) 。 建树可以这么写: N = 1; while (N < n) N <<= 1; for (int i = N; i < N + n; ++i) t[i] = Read(); for (int i = N - 1; i; -

一本通【例9.13】庆功会

1269:【例9.13】庆功会 时间限制: 1000 ms         内存限制: 65536 KB提交数: 8598     通过数: 4932  【题目描述】 为了庆贺班级在校运动会上取得全校第一名成绩,班主任决定开一场庆功会,为此拨款购买奖品犒劳运动员。期望拨款金额能购买最大价值的奖品,可以补充他们的

P5344 【XR-1】逛森林[线段树优化建图]

判下连通,离线下来连边,就是个裸的板子了QvQ。 我们把一堆边连到一个点,那个点连到一堆边,这样就可以满足 [l1,r1] -> to [l2,r2] 了 可以用 zkw 线段树来跑 spfa,奇怪的姿势增加了。 // by Isaunoya #include<bits/stdc++.h> using namespace std; struct io { char buf[1 << 25 | 3]

ZKW费用流

分析 记\(D_i\)为\(S\)到\(i\)的最短路,那么对于所有边\((i,j)\),都要满足\(D_i+cost_{i,j}\geq D_j\)。 我们考虑普通的费用流,它的原理是沿着一条\(s\rightarrow T\)的最短路径满足增广,显然对于这条路径上的所有边\((i,j)\),都是满足\(D_i+cost_{i,j}=D_j\)的。 原图上我们对于\(\fo

BZOJ 3112: [Zjoi2013]防守战线 ZKW费用流

title BZOJ 3112 LUOGU 3337 Description 战线可以看作一个长度为n 的序列,现在需要在这个序列上建塔来防守敌兵,在序列第i 号位置上建一座塔有Ci 的花费,且一个位置可以建任意多的塔,费用累加计算。有m 个区间[L1, R1], [L2, R2], …, [Lm, Rm],在第i 个区间的范围内要建至少Di 座塔

BZOJ 4942: [Noi2017]整数 ZKW线段树

title \(~\) BZOJ 4942 LUOGU 3822 题目搞简单一些: 有一个整数 \(x\),一开始为 \(0\)。 接下来有 \(n\) 个操作,每个操作都是以下两种类型中的一种: 1 a b:将 \(x\) 加上整数 \(a\cdot 2^b\),其中 \(a\) 为一个整数, \(b\) 为一个非负整数 2 k :询问 \(x\) 在用二进制表示时,位权为 \(2^k

zkw费用流

#include <cstdio>#include <algorithm>#include <cmath>#include <cstring>#include <iostream>#include <ctime>#include <map>#include <queue>#include <cstdlib>#include <string>#include <climits>

LOJ.6068.[2017山东一轮集训Day4]棋盘(费用流zkw)

题目链接 考虑两个\(\#\)之间产生的花费是怎样的。设这之间放了\(k\)个棋子,花费是\(\frac{k(k-1)}{2}\)。 在\((r,c)\)处放棋子,行和列会同时产生花费,且花费和该行该连通块与该列该连通块当前有多少个有关。想到网络流就很简单了,建图比较简单,类似[[WC2007]剪刀石头布]。 点数写了3n

[模板]非递归线段树(zkw的变异版本)

类似于zkw,但空间只用两倍,zkw要4倍。 链接 可以下传标记,打熟后很好码。 #include <set> #include <cmath> #include <cstdio> #include <cstring> #include <iostream> #include <assert.h> #include <algorithm> using namespace std; #define LL long lon

P2410 [SDOI2009]最优图像 ZKW最大费用最大流

$ \color{#0066ff}{ 题目描述 }$ 小E在好友小W的家中发现一幅神奇的图画,对此颇有兴趣。它可以被看做一个包含N×M个像素的黑白图像,为了方便起见,我们用0表示白色像素,1表示黑色像素。小E认为这幅图画暗藏玄机,因此他记录下了这幅图像中每行、每列的黑色像素数量,以回去慢慢研究其中的奥