数据结构
ezoiHY
一名混oi的大佬
展开
-
树形结构
树形结构———其实这是很简单又很难得一些东西1 定义树状图是一种数据结构,它是由n(n>=1)n(n>=1)n (n>=1)个有限节点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。 树(tree)是包含n(n>0)n(n>0) n(n>0)个结点的有穷集,其中:1)每个元素称为结点(node)...原创 2018-08-16 08:24:22 · 3647 阅读 · 0 评论 -
CF558E A simple task 线段树
这道题好猥琐啊啊啊啊啊啊写了一个上午啊啊啊啊 没有在update里写pushup啊啊啊啊题目大意:给你一个字符串s,有q个操作 l r 1 :把sl..rsl..r按升序排序 l r 0 :把sl..rsl..r按降序排序Solution:我们考虑建26棵线段树,第i棵线段树的[x,y]表示在[x,y]中一共有多少个字母’a’+i-1 至于修改时我们可以以升序...原创 2018-08-15 19:26:53 · 2709 阅读 · 0 评论 -
树形dp
我也很久没写树d了今天切了4题,也就来写下博客1.树形dp这是一种在树上的dp,它与线性dp不同,与线性dp的顺序是不同的所以其实树形dp就是树上dp是一种在树状结构上进行dp的一种,各个阶段呈现树状关系的时候也可以采用树形dp。2.分类其实这里也有很多类了,树上背包,删点或者删边类树形DP等等3.实现树d的实现其实大多数就是dfs了,对于树的操作也...原创 2018-08-15 19:26:11 · 2856 阅读 · 0 评论 -
复习2二分图匹配
我们现在讲下二分图匹配1.什么是二分图二分图又称作二部图,是图论中的一种特殊模型。 设G=(V,E)G=(V,E)G=(V,E)是一个无向图,如果顶点VVV可分割为两个互不相交的子集(A,B)(A,B)(A,B),并且图中的每条边(i,j)(i,j)(i,j)所关联的两个顶点i和j分别属于这两个不同的顶点集(i∈A,j∈B)(i∈A,j∈B)(i\in A,j\in B),则称图GGG...原创 2018-08-15 19:24:11 · 2784 阅读 · 0 评论 -
线段树标记永久化
线段树的标记永久化其实线段树的标记永久化是一个非常容易理解的东西,往往我们都会在区间操作时打lazytag,但是在标记下放时会耗费大量的时间,所以我们可以尝试标记永久化,这样我们的就不用下放标记,同时代码也更加简洁,因为我们少了一个pushdown函数,同时出错率也会大大降低。 对于标记永久化,其实和普通线段树比起来,其实差不多#include<iostream>#in...原创 2018-08-15 19:23:15 · 3269 阅读 · 0 评论 -
复习3图的全家桶
图论还是来个全家桶吧,其实图论这种东西还是蛮好理解的-1.什么是图图(Graph)是表示物件与物件之间的关系的数学对象,是图论的基本研究对象。一个不带权图中若两点不相邻,邻接矩阵相应位置为0,对带权图(网),相应位置为∞。有向图与无向图如果给图的每条边规定一个方向,那么得到的图称为有向图。在有向图中,与一个节点相关联的边有出边和入边之分。相反,边没有方向的图称为无向图。...原创 2018-08-15 19:20:57 · 2788 阅读 · 0 评论 -
bzoj3545 Peaks 线段树合并
离线乱搞。。。 也就是一个线段树合并没什么#include<algorithm>#include<iostream>#include<cstring>#include<cstdio>using namespace std;int n,m,q,tot,cnt,num,h[100001],a[100001],ans[500001]...原创 2018-08-15 19:19:59 · 2865 阅读 · 0 评论 -
线段树_数据结构
没错则就是一个(过去的)线段树黑洞的线段树博客线段树:忠诚改实际上这个线段树是十分的简(fu)单(za)的分别有以下几个函数:build:构建整棵线段树pushup:对于我们所要求的答案进行往上更新pushdown:lazy标记下传update:区间修改(可以当做单点修改用)query:区间查询(和,最值等)所以这里每个节点可以维护一个值(如区间最值、和等...原创 2018-02-21 23:25:57 · 2941 阅读 · 0 评论 -
可持久化AC自动机
其实就是可持久化线段树的模板题 线段树不会看这里#include&lt;bits/stdc++.h&gt;const int N=1000005;using namespace std;int a[N],n,m,q,rt[N*20];int lc[N*20],rc[N*20],val[N*20],cnt;int rd(){ register int f=1,x=0;regi...原创 2018-08-17 08:30:33 · 760 阅读 · 2 评论