========数据结构========
文章平均质量分 83
良月澪二
EU gosto de música
展开
-
AcWing 245. 你能回答这些问题吗
线段树,区间最大子段和原创 2019-11-14 16:56:04 · 419 阅读 · 0 评论 -
BZOJ 5334: [Tjoi2018]数学计算
题目链接:传送门一眼看过去很简单的样子根节点维护线段树乘积每个叶节点对应每一个操作如果是2操作则该叶节点为1否则就是就是要乘的m/** * @Date: 2019-03-27T19:21:25+08:00 * @Last modified time: 2019-03-27T19:21:26+08:00 */#include <iostream>#include...原创 2019-07-15 14:56:08 · 143 阅读 · 0 评论 -
POJ 3667 Hotel
题目链接:传送门虽然是重题但还是要发一篇博客维护最长01串oh我之前写的好良心再放上来#include <iostream>#include <cstdio>#include <cstring>#include <cstdlib>#include <complex>#include <algorithm>...原创 2019-07-15 15:22:55 · 70 阅读 · 0 评论 -
HDU 1394 Minimum Inversion Number
题目链接:传送门求出原数组的逆序对算把一个数从对头拿到队尾的过程中产生的贡献诶我好像昨天做过这个题#include <iostream>#include <cstdio>#include <cstring>#include <cstdlib>#include <complex>#include <algorith...原创 2019-07-15 20:22:52 · 126 阅读 · 0 评论 -
[EZOI 2016]源氏的数学课
题目链接:传送门求带单点修改把式子拆开求∑i=lrai∗r−∑i=lrai∗i+∑i=lrai\sum_{i=l}^{r} a_{i}*r-\sum_{i=l}^{r} a_{i}*i+\sum_{i=l}^{r}a_i∑i=lrai∗r−∑i=lrai∗i+∑i=lrai维护一个区间和和一个区间ai∗ia_{i}*iai∗i就好了/** * @Date: 201...原创 2019-07-11 16:53:35 · 314 阅读 · 0 评论 -
BZOJ 5457: 城市
题目链接:传送门题目大意:一棵树的每个节点上有一群人,给出这群人的数量和民族问每棵子树内人数最多的民族和人数是多少线段树合并dfs从根往下合并就可以pair是真的方便人数作first,民族作second因为要优先输出民族编号最小的所以民族加负的维护的时候直接对pair取max就可以#include <iostream>#include <cstdio>...原创 2019-07-16 08:48:52 · 210 阅读 · 0 评论 -
POJ 2481 Cows
题目链接:传送门问每条线段被包含了多少次把线段按左端点排序左端点相同的按右端点大的在前面这样就不用考虑左端点的影响了每次插入一条线段就将1-r加1询问r-inf的值因为这时左端点的影响已经忽略#include <iostream>#include <cstdio>#include <cstring>#include <cstdlib&...原创 2019-07-16 14:38:59 · 151 阅读 · 0 评论 -
CF914D Bash and a Tough Math Puzzle
题目链接:传送门问一个区间修改一个数能不能让这个区间gcd变为x;带单点修改直接维护每个区间gcd递归到叶子节点且%x不为0时cnt++如果cnt>1就不行半年前的代码了#include <iostream>#include <cstdio>#include <cstring>#include <cstdlib>#inclu...原创 2019-07-16 14:51:13 · 222 阅读 · 0 评论 -
Luogu P1712 [NOI2016]区间
题目链接:传送门lr 1e9离散化是必须的离散化之前把区间长度记下来就行而且lr坐标要一起离散化只要被覆盖的区间>=m就不断删除区间取更小答案/** * @Date: 2019-03-31T15:18:21+08:00 * @Last modified time: 2019-03-31T15:18:22+08:00 */#include <iostream>...原创 2019-07-18 20:27:36 · 157 阅读 · 0 评论 -
COGS 2632. [HZOI 2016] 数列操作d
题目链接:传送门区间加等差数列把等差数列看成一个三角形mid从中间切开后左儿子加的还是一个三角形右儿子加的是一个梯形这样维护区间和就好了只不过为什么多取模会错!#include <iostream>#include <cstdio>#include <cstring>#include <cstdlib>#include &l...原创 2019-07-16 18:10:58 · 179 阅读 · 0 评论 -
Luogu P1438 无聊的数列
题目链接:传送门还是区间加等差数列时隔8个月再写一遍这个题不会的来这里#include <iostream>#include <cstdio>#include <cstring>#include <cstdlib>#include <complex>#include <algorithm>#include ...原创 2019-07-16 21:12:26 · 129 阅读 · 0 评论 -
Luogu P2982 [USACO10FEB]慢下来Slowing down
题目链接:传送门读了好几遍题没看到“粮仓在一号牧场”所以没读懂卡了好久意思就是一头牛走到自己的位置后再有其他牛走过时这头其他牛的答案会+1树剖单点修改+询问一条链就好了#include <iostream>#include <cstdio>#include <cstring>#include <cstdlib>#include...原创 2019-07-19 15:12:59 · 182 阅读 · 0 评论 -
Luogu P3038 [USACO11DEC]牧草种植Grass Planting
题目链接:传送门每次操作给两个点之间的所有边权+1或询问两个点之间的边权和来刷板子了注意点权转边权就是最后dfn+1#include <iostream>#include <cstdio>#include <cstring>#include <cstdlib>#include <complex>#include <...原创 2019-07-19 15:25:24 · 223 阅读 · 0 评论 -
Luogu P1383 高级打字机
题目链接:传送门支持三种操作1.T x:在文章末尾打下一个小写字母x2.U x:撤销最后的x次修改操作3.Q x:询问当前文章中第x个字母并输出一眼主席树比较板子就没了#include <iostream>#include <cstdio>#include <cstring>#include <cstdlib>#include...原创 2019-07-20 07:26:46 · 201 阅读 · 0 评论 -
Luogu P2221 [HAOI2012]高速公路
题目链接:传送门维护路径期望值,带区间修改看每条路径会被统计多少次贡献非常不显然是∑i=lr(i−l+1)(r−i)∗v\sum_{i=l}^{r}(i-l+1)(r-i)*v∑i=lr(i−l+1)(r−i)∗v方案数就是∑i=lr(r−l+1)(r−l)/2\sum_{i=l}^{r}(r-l+1)(r-l)/2∑i=lr(r−l+1)(r−l)/2上面的是分子下面的是分母现...原创 2019-07-17 18:21:25 · 200 阅读 · 0 评论 -
AcWing 144. 最长异或值路径
题目链接:传送门前些日子差不多在刷水题可能过一会儿会补一下博客~~类似洛谷的最长异或路径,也好像就是一样。对于一条链的异或值设链头分别为xxx,yyy只要维护根到每个节点的异或值f[i]f[i]f[i]x−>yx->yx−>y的异或值就是f[x]f[x]f[x]^f[y]f[y]f[y]因为前面重复的被异或抵消了那么题目就变成了在nnn个数中挑两...原创 2019-08-22 16:37:45 · 205 阅读 · 0 评论 -
LOJ #6029. 「雅礼集训 2017 Day1」市场
线段树,区间除法原创 2019-08-26 17:35:52 · 359 阅读 · 0 评论 -
CF438D The Child and Sequence
题目链接:传送门区间求和,单点修改,区间取模线段树里维护一个max,取模的时候如果区间最大值小于max直接return就可以不然的话递归到叶子节点再取模有效降低复杂度不开long long好像只能过两个样例#include <iostream>#include <cstdio>#include <cstring>#include <cst...原创 2019-07-14 10:22:03 · 218 阅读 · 0 评论 -
Luogu P2412 查单词
题目链接:传送门做完这个题感觉我是个沙雕在越做越麻烦的道路上一去不复返我真傻,真的(会有大量冗余变量)#include <iostream>#include <cstdio>#include <cstring>#include <cstdlib>#include <complex>#include <algor...原创 2019-07-14 08:34:05 · 188 阅读 · 0 评论 -
二叉查找树——清华大学计算机系 郭家宝
二叉查找树的定义、遍历与查找定义二叉查找树(BinaryBinaryBinary SearchSearchSearch TreeTreeTree)或者是一棵空树,或者是具有下列性质的二叉树:若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值;它的左、右子树也分别为二叉查找树。上述性质被称为BSTBSTBST性质...原创 2019-02-17 08:00:43 · 3279 阅读 · 1 评论 -
简洁好懂的Fhq Treap讲解
Fhq Treap的详细讲解原创 2018-12-15 22:00:21 · 1924 阅读 · 4 评论 -
Treap图文详解、效率分析与拓展应用——清华大学计算机系 郭家宝
一、什么是 TreapTreap=Tree+HeapTreap=Tree+HeapTreap=Tree+HeapTreapTreapTreap是一种平衡树TreapTreapTreap发音为[tri:p]这个单词的构造选取了TreeTreeTree(树)的前两个字符和HeapHeapHeap(堆)的后三个字符,Treap=Tree+HeapTreap=Tree+HeapTreap=Tree...原创 2018-12-16 16:57:29 · 5151 阅读 · 7 评论 -
最良心的splay学习教程
预备知识二叉查找树Treap如果你不大想看那么长的文章只想尽快入手splaysplaysplay的话那就先往下看吧保证对小白友好(flagflagflag)首先splaysplaysplay也是一种二叉查找树满足左子树上所有节点的值都小于根节点的值右子树上所有节点的值都大于根节点的值上面两条性质是最重要的就是因为这两条性质才衍生出的更稳定的各类平衡树那么,其中之一的spla...原创 2018-12-17 15:08:11 · 878 阅读 · 0 评论 -
Luogu P5142 区间方差
题目链接:传送门区间方差,单点修改不会化简的看这里由于有减法所以最后的时候要先加几个mod可能是很多人10分的原因/** * @Date: 2019-03-31T19:57:45+08:00 * @Last modified time: 2019-03-31T19:57:45+08:00 */#include <iostream>#include <cs...原创 2019-04-01 10:44:45 · 209 阅读 · 0 评论 -
CF842D Vitya and Strange Lesson
题目链接:传送门给出一个序列,m次操作每次给出一个数x,让序列中的所有数都异或上x,求每次操作完后的序列mex(最小未出现自然数)会01trie就简单了把序列去重后加到01trie中统计每个子树下有多少个数查询时左儿子满了就往右走,右儿子同理直到走到空节点就直接返回一定注意一开始存一个根节点也就是cnt一开始一定为1/** * @Date: 2019-04-13T10:54...原创 2019-04-13 14:59:20 · 466 阅读 · 0 评论 -
Luogu P4868 Preprefix sum
题目链接:传送门线段树维护前缀和简单明了修改就修改当然还有更快的树状数组差分的做法/** * @Date: 2019-05-11T19:41:27+08:00 * @Email: 2743292121@qq.com * @Last modified time: 2019-05-11T19:41:27+08:00 */#include <iostream>#i...原创 2019-05-11 20:08:25 · 184 阅读 · 0 评论 -
Luogu P4915 帕秋莉的魔导书
题目链接:传送门动态开点是真的麻烦跟普通线段树差别还是挺大的题意就是区间前缀和的和除以区间长度#include <iostream>#include <cstdio>#include <cstring>#include <cstdlib>#include <complex>#include <algorithm&g...原创 2019-05-12 09:37:24 · 206 阅读 · 0 评论 -
Luogu P4514 上帝造题的七分钟
题目链接:传送门二维树状数组区间加区间求和烦人的输入#include <iostream>#include <cstdio>#include <cstring>#include <cstdlib>#include <complex>#include <algorithm>#include <climi...原创 2019-05-12 10:43:37 · 209 阅读 · 0 评论 -
Luogu P4979 矿洞:坍塌
题目链接:传送门每个字母附一个不同的值,范围要大维护区间和样例太水了没有修改不开O2会T最后一个点懒得再改输入了#include <iostream>#include <cstdio>#include <cstring>#include <cstdlib>#include <complex>#include <...原创 2019-05-12 17:18:16 · 153 阅读 · 0 评论 -
BZOJ 1012: [JSOI2008]最大数maxnumber
题目链接:传送门时隔一年再写一遍#include <iostream>#include <cstdio>#include <cstring>#include <cstdlib>#include <complex>#include <algorithm>#include <climits>#incl...原创 2019-06-15 08:02:16 · 169 阅读 · 0 评论 -
Luogu P3488 [POI2009]LYZ-Ice Skates
题目链接:传送门xxx号脚的人可以穿x−x+dx-x+dx−x+d大小的鞋设f[x]f[x]f[x]为xxx号脚的人的数量假设选择区间[l,r][l,r][l,r]就要满足∑i=lrf[x]<=(r+d−l+1)∗k\sum_{i=l}^{r} f[x]<=(r+d-l+1)*k∑i=lrf[x]<=(r+d−l+1)∗k把r−l+1r-l+1r−l+...原创 2019-06-10 21:48:30 · 232 阅读 · 0 评论 -
Luogu P4513 小白逛公园
题目链接:传送门区间最大子段和就因为两个挨着的小错误困扰了我十几个小时…好气#include <iostream>#include <cstdio>#include <cstring>#include <cstdlib>#include <complex>#include <algorithm>#inclu...原创 2019-06-04 21:04:22 · 158 阅读 · 0 评论 -
BZOJ 3747: [POI2015]Kinoman
题目链接:传送门好像之前在洛谷上做过一个叫KIN的题一个电影看多次就不会记贡献那么这个电影产生贡献的区间就是(这一次看)到(上一次看的后一天)在这一块内才会记录它的贡献再往前要在(上一次看的上一次的后一天)到(上一次看的后一天)这段区间减去贡献因为对于那个时间段这个电影已经产生不了贡献了这题做法很多看了一些做法感觉单点修改的最好理解#include <iostream>...原创 2019-07-12 22:13:58 · 222 阅读 · 0 评论 -
Luogu P3833 [SHOI2012]魔法树
题目链接:传送门树剖板子区间加,子树查询树剖里查询的时候x和y地方小于号写反T了一会a,b写成dfn[a],dfn[b]竟然还有50分又WA了一会也就交了二十遍。#include <iostream>#include <cstdio>#include <cstring>#include <cstdlib>#include <...原创 2019-07-13 19:55:55 · 165 阅读 · 0 评论 -
Luogu P3313 [SDOI2014]旅行
题目链接:传送门动态开点+树剖的模板吧。都很熟的话就挺好写的特别注意在dfs序上修改#include <iostream>#include <cstdio>#include <cstring>#include <cstdlib>#include <complex>#include <algorithm>...原创 2019-06-29 08:25:26 · 175 阅读 · 0 评论 -
珂朵莉树(Chtholly Tree)渗析
先给一道题题目链接:传送门#【题面】请你写一种奇怪的数据结构,支持:1lrx1 l r x1lrx:将[l,r][l,r][l,r]区间所有数加上xxx2lrx2 l r x2lrx:将[l,r][l,r][l,r]区间所有数改成xxx3lrx3 l r x3lrx:输出将[l,r][l,r][l,r]区间从小到大排序后的第xxx个数是的多少(即区间第xxx小,数字大小相同算多次,保证...原创 2018-12-14 21:27:33 · 655 阅读 · 0 评论