模板
文章平均质量分 88
jmsyzsfq
sfq666
展开
-
【模板】树状数组(详解)
转自zP1nG树状数组可以解决什么样的问题对于包含n个元素的整数数组a,每次可以 1. C(i, j): 修改一个元素a[i] = j 2. Q(i): 询问前缀Si=a1+a2+…+ai的值lowbit值在说树状数组之前,我们不得不说一下lowbit值 设c[i]=a[i-2k+1]+…+a[i],其中k为i在二进制下末尾0的个数 令LOWBIT(i)=2^k 例如, i=10转载 2017-09-21 14:18:22 · 555 阅读 · 0 评论 -
【并查集模板】洛谷P3367
并查集定义并查集是一种树型的数据结构,用于处理一些不相交集合(Disjoint Sets)的合并及查询问题。常常在使用中以森林来表示。 集就是让每个元素构成一个单元素的集合,也就是按一定顺序将属于同一组的元素所在的集合合并。主要操作初始化: 把每个点所在集合初始化为其自身。通常来说,这个步骤在每次使用该数据结构时只需要执行一次,无论何种实现方式,时间复杂度均为O(N)。 查找: 查找元素所在原创 2017-09-12 20:45:54 · 301 阅读 · 0 评论 -
【Dinic模板】【洛谷P3376】
DinicDinic算法是网络流最大流的优化算法之一,每一步对原图进行分层,然后用DFS求增广路。时间复杂度是O(n^2*m),Dinic算法最多被分为n个阶段,每个阶段包括建层次网络和寻找增广路两部分。 Dinic算法的思想是分阶段地在层次网络中增广。它与最短增广路算法不同之处是:最短增广路每个阶段执行完一次BFS增广后,要重新启动BFS从源点Vs开始寻找另一条增广路;而在Dinic算法中,只需原创 2017-09-20 09:27:48 · 424 阅读 · 0 评论 -
【模板】进制转换【DBSDFZOJ】
进制转换基本思路因为计算机语言主要是涉及2,8,10,16进制的进制转换 而对于10进制,我们再熟悉不过了 所以其进制转换直接/10 %10就可以了 而对于其他进制间的相互转化,有两种方法 1:把这个数转化成十进制,在进行进制转化,但是这在实现中是非常困难的,需要很高的处理程度,否则容易WA,并且时间复杂度也很大,也容易TLE 2:把这个数转化成二进制,如果是(转化成8进制)就每三位一取即原创 2017-09-20 10:42:26 · 543 阅读 · 0 评论 -
【模板】【Treap/SBT】【树堆】普通平衡树【洛谷P3369】
模板题目传送门 首先,我们介绍一下 TreapTreap(树堆)Treap=Tree+Heap。Treap本身是一棵二叉搜索树,它的左子树和右子树也分别是一个Treap,和一般的二叉搜索树不同的是,Treap纪录一个额外的数据,就是优先级。Treap在以关键码构成二叉搜索树的同时,还满足堆的性质。这些优先级是是在结点插入时,随机赋予的,Treap根据这些优先级满足堆的性质。这样的话,Treap是有原创 2017-09-19 15:46:20 · 957 阅读 · 0 评论 -
【bzoj1036】【树链剖分】 [ZJOI2008]树的统计Count
Description 一棵树上有n个节点,编号分别为1到n,每个节点都有一个权值w。我们将以下面的形式来要求你对这棵树完成 一些操作: I. CHANGE u t : 把结点u的权值改为t II. QMAX u v: 询问从点u到点v的路径上的节点的最大权值 I II. QSUM u v: 询问从点u到点v的路径上的节点的权值和 注意:从点u到点v的路径上的节点包括u和v本身Input 输原创 2017-10-09 21:24:48 · 309 阅读 · 0 评论 -
【二维树状数组】【模板】poj1195Mobile phones
biu~DescriptionSuppose that the fourth generation mobile phone base stations in the Tampere area operate as follows. The area is divided into squares. The squares form an S * S matrix with the rows and原创 2017-10-12 20:18:56 · 204 阅读 · 0 评论 -
【模板主席树】洛谷p3834
主席树主席树的主体是线段树,准确的说,是很多棵线段树,存的是一段数字区间出现次数(所以要先离散化可能出现的数字)。举个例子,假设我每次都要求整个序列内的第 k 小,那么对整个序列构造一个线段树,然后在线段树上不断找第 k 小在当前数字区间的左半部分还是右半部分。这个操作和平衡树的 Rank 操作一样,只是这里将离散的数字搞成了连续的数字。先假设没有修改操作:对于每个前缀 S1…i,保存这样一个线段树原创 2017-11-04 20:50:26 · 481 阅读 · 0 评论 -
虚树模板
虚树所谓虚树,就是我们在做题中把用到的点建到一颗新树上。 比如如果我们当前询问一条链的两端,如果我们直接dfs(暴力)的话时间复杂度就是O(n) 但是如果我们用虚树,那么这棵树上就只会有这两个节点 两个节点之间的那条边记录了原本链的信息 于是复杂度从O(n)为了O(2)一般题中除了给出的询问点,我们还会用到询问点的lca,但是lca数也是o(n^2)的,于是我们想到把关键点按dfs序排序,原创 2017-12-21 20:08:39 · 325 阅读 · 2 评论