
数据结构
文章平均质量分 59
Caristra
live for code
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
观光公交——堆优化
题意:2011noip原题,不再赘述。之前贪心的做法固然是正确的。但一个一个加速器用显得太慢了,能不能一次性使用多个加速器呢? 答案完全是可以的,同之前贪心策略类似的,关注每站的T_up_max和T_down_max,以及每站的下车人数,并将其前缀和维护。 那么就找max(T_down_max-T_up_max),即使用加速器的个数。#include<bits/stdc++.h>#defi原创 2017-10-18 15:17:29 · 449 阅读 · 0 评论 -
COCI 2015/2016 Contest#3 E
Description:有一个长度为nnn的序列AAA,且Ai∈[1,K]A_i \in[1,K]Ai∈[1,K]。现在有m个操作,有2种操作:1 xxx vvv表示将位置AxA_xAx改为vvv;2 输出最短的区间长度,满足该区间包含[1,K][1,K][1,K]的数。n,m≤50000,K≤30n,m\le 50000,K\le 30n,m≤50000,K≤30Solution...原创 2018-11-05 19:18:48 · 562 阅读 · 1 评论 -
左偏树——可并堆
左偏树简介:左偏树中的一个节点,如果它的左子树或右子树为NULLNULLNULL,则称它是一个外结点。在左偏树中,距离(distdistdist)为该点到最近外结点的距离。堆性质——在非叶节点中满足val(x)≥val(lson),val(x)≥val(rson)val(x)≥val(lson),val(x)≥val(rson)val(x) \ge val(lson),val(x...原创 2018-08-20 18:50:11 · 373 阅读 · 0 评论 -
点分治
点分治简介:点分治,顾名思义就是基于树上的节点进行分治。 实质就是将一棵树根据合理的分治方法(即改进复杂度),分成若干个子树,化成子问题。常规操作: 这里要找的分治点即为重心。 根据重心进行划分子树,可以达到log。(具体证明不太想赘述,实则蒟蒻不会证...)模板(code):int n;vector<int>E[N];int sz[N],F[N];...原创 2018-07-19 22:22:39 · 349 阅读 · 0 评论 -
Link_Cut_Tree
LCTLCT是一种维护动态树的数据结构之一。 一般可以查询一条路径上的一些信息。 也可以进行对路径上的信息的修改。简介:*基本属性:* 实边: 1. 重儿子:重儿子与父亲节点在同一棵Splay中,一个节点最多只能有一个重儿子 2. 重边:连接父亲节点和重儿子的边 3. 重链 :由重边及重边连接的节点构成的链虚边: 除实边以外的边; 对应的就有轻儿子,轻边,轻链...原创 2018-07-07 10:20:02 · 265 阅读 · 4 评论 -
CDQ分治
分治:字面上的意义,就是分而治之; 将一个大问题划分成相互独立的小(子)问题,由解决一个个小问题,进而解决了这个大问题。常规操作及思路: 1. 划分: 一般保证一个log,对半划分,即分为[L,mid][L,mid][L,mid],[mid+1,R][mid+1,R][mid+1,R]。 2. 解决 : 一般而言之,就是统计当前区间对另一个区间的贡献。 ...原创 2018-07-18 21:29:42 · 202 阅读 · 0 评论 -
树链剖分
模板,树剖原创 2018-04-23 07:27:19 · 219 阅读 · 0 评论 -
SRM552 Div1 Medium
Fox And Flower Shop Div One题意:给定一块N×MN×MN×M的田地,每格田地上只可能是花LLL、PPP,空地(.)这三种可能。 找出两块无交集(不同时覆盖同一块土地)的矩形区域,满足这两块区域内|L的数量−P的数量|≤K|L的数量−P的数量|≤K|L的数量-P的数量|\le K,且使得区域内花的数量之和最大。2≤N,M≤30,0≤K≤9002≤N,M≤30,...原创 2018-04-22 18:43:34 · 347 阅读 · 0 评论 -
简单的线段树
前言线段树想必大家再熟悉不过了,说实话敲线段树的模板还是很享受的(温馨提示:不要被数据结构所驾驭了)。 这里,蒟蒻我就简要说一下鄙人的线段树的一些简单功能:支持单点、区间更新,求单点权值,区间求和、最值。struct Tree{ #define lson L,mid,p<<1 #define rson mid+1,R,p<<1|1 #define family tree[p原创 2017-11-07 21:10:23 · 307 阅读 · 0 评论 -
航线规划——3103
题意:n个星球,m条边,Q个操作。 (1)破坏一条边; (2)询问两个星球之间的关键路径的条数(即为一个星球到另一个星球的必经之路)。数据范围: 30%,n<=100,m<=500,Q<=100; 60%,n<=10000,m<=30000,Q<=20000,数据中没有删边操作; 100%,n<=30000,m<=100000,Q<=40000,数据保证任何时候图都是连通,且没有重边和自环原创 2017-10-15 14:47:05 · 1358 阅读 · 0 评论 -
Paths(升级版)---3011
题意有一棵树,树的节点编号为1,2,…,n。 树上有m条路径,现在要从这些路径中选一些,选出的路径不能有公共点。 每条路径有一个权值,求选出哪些路径,是的权值最大。思路: 如上图,此题实际上就是在可选择的边上多了权值的信息,然而,这就完全不是一道题目了…dp[i]表示以i为根的子树的最大值; sum[i]表示i的子节点的子树的dp之和; 也就是:val + ∑sum[i] - ∑dp[i]原创 2017-10-11 16:19:57 · 669 阅读 · 0 评论 -
NOI 2013 快餐店
Description:有nnn个点,nnn条边的图,求一个点,使得这个点到其它的点的最大距离最小(注意:这个点可以在边上)。n≤105,Li≤109n\le10^5,L_i\le10^9n≤105,Li≤109Solution:因为它是一个nnn个点nnn条边的图。那么它是一个基环树。首先,一定会先考虑分类讨论。我们优先解决环上。对于点在环上时,我们可以发现,最大距离一定是环上...原创 2018-11-08 08:57:50 · 298 阅读 · 0 评论