简单列了一点 1.1 基本数据结构 1. 数组 2. 链表,双向链表 3. 队列,单调队列,双端队列 4. 栈,单调栈 1.2 中级数据结构 1. 堆 2. 并查集与带权并查集 3. hash 表 自然溢出 双hash 1.3 高级数据结构 1. 树状数组 2. 线段树,线段树合并
分类:
其他好文 时间:
2016-03-14 21:46:22
阅读次数:
157
Hotel Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 14958 Accepted: 6450 Description The cows are journeying north to Thunder Bay in Cana
分类:
其他好文 时间:
2016-02-20 00:33:33
阅读次数:
221
【题意】 一段区间初始均为可行。有两个操作: 1→找出长度为w的一段可行区间,如果存在则返回这个可行区间最靠左的情况,并将该区间设为不可行; 2→将区间[a,b]设为可行区间。 【思路】 经典的线段树合并,代码依旧用的是神犇的线段树模板。详见注释。 【错误点】 延迟标记的时候,忘记把cover清为-
分类:
其他好文 时间:
2016-01-31 13:12:08
阅读次数:
205
将所有权值离散化,建立权值线段树,维护区间内数字个数以及对数的和,用于比较乘积大小。对于每个连通块维护一棵权值线段树,合并时用线段树合并。对于操作3和4,暴力删除所有不合法节点,然后一并修改后插入线段树即可。时间复杂度$O(m\log m)$。#include#include#includeusin...
分类:
其他好文 时间:
2016-01-20 06:17:12
阅读次数:
199
题意:
给出一个二叉树,叶子结点上有权值;
共有n个叶子结点,权值分别为1-n;
现可将所有结点的左右儿子交换,求最小的逆序对数;
2
题解:
这题读入有点鬼畜,但是写起来还是比较优雅的;
考虑到一个结点的子树具体形态与它是否和它的兄弟交换是无关的;
所以我们可以像分治一样,先计算子树之间的最小逆序对数;
然后将所有的权值扔到一个线段树中,向它的父亲传递;
它的父亲是没...
分类:
其他好文 时间:
2015-09-30 13:08:06
阅读次数:
210
Hotel
Time Limit: 3000MS
Memory Limit: 65536K
链接:POJ 3667
Description
The cows are journeying north to ThunderBay in Canada to gain cultural enrichme...
分类:
其他好文 时间:
2015-08-10 20:03:16
阅读次数:
102
这道题在网上搜了一下题解,别人说是比hdu hotel还要变态的一题。
既然是变态题,因为它综合了线段树的几乎所有操作。
这道题的题意是:
有如下几个操作:
1:首先是Reset操作,这个操作代表的是把所有的内存空间全部都清空。
2:New x:代表的是分配一个x个内存空间,如果有内存空间的话,则输出那个内存空间的最左边的那个端点。否则,则输出Reject New
3:Free x:代...
分类:
其他好文 时间:
2015-07-03 19:20:46
阅读次数:
167
题目链接:XJOI - NOI2015-13 - C题目分析使用神奇的线段树合并在 O(nlogn) 的时间复杂度内解决这道题目。对树上的每个点都建立一棵线段树,key是时间(即第几次操作),动态开点。线段树的节点维护两个值,一个是这段时间内的 1 操作个数,另一个是这段时间内变化的黑色节点权值和。...
分类:
其他好文 时间:
2015-06-25 19:26:14
阅读次数:
183
题目链接:BZOJ - 2212题目分析子树 x 内的逆序对个数为 :x 左子树内的逆序对个数 + x 右子树内的逆序对个数 + 跨越 x 左子树与右子树的逆序对。左右子树内部的逆序对与是否交换左右子树无关,是否交换左右子树取决于交换后 “跨越 x 左子树与右子树的逆序对” 是否会减小。因此我们要求...
分类:
其他好文 时间:
2015-06-25 10:18:01
阅读次数:
151
题目大意:给定一棵树,每个点有一个整数权值(可以是负数),要求支持两种操作:
1.链上加
2.链上绝对值之和由于加的数保证非负,因此一个负数变成一个正数最多有nn次
树链剖分,在线段树中维护一下区间最大负数即可
不知道为何 写了两个线段树就TLE 把两个线段树合并成一个就7s过了#include
#include
#include ...
分类:
其他好文 时间:
2015-06-12 11:44:26
阅读次数:
158