数据结构
Mavis code
这个作者很懒,什么都没留下…
展开
-
数据结构-图-学习笔记2
今天的问题是由老师提出的问题引发的一系列思考,还有和我的是有交流得到的。数据结构在学图的这一章时,并没有向执勤啊那样使用模板类。但是直观的理解是节点只有编号,而边就是存储权重。所以并不需要像之前那样需要使用模板类。事实上,和我的是有激烈讨论还有自己深入思考之后,我发现了里面还有很多精华。树就是一种图,线性表->树->图,抽象程度一次递增,线性表示退化了的树,等等。那为什么树的节点...原创 2018-11-21 16:54:04 · 165 阅读 · 0 评论 -
数据结构的感悟-树-学习笔记
写一下自己平时学习的一些体会。今天学的是一般的树。首先是数组实现的树,使用它可以很方便地实现树的并查集算法(父指针法)。数据结构课开始就讲了数组和链表,这是学习其他数据结构的基础,其他类型的数据结构都先有基于数组的实现方法,然后有些不足,就介绍基于链表的实现方法。(因为链表增删复杂度更低)。数组不够动态,他一般都固定化了。比如一个一般树的节点一般都要预留足够大的空间,但是这会造成极大的浪费(...原创 2018-11-19 14:58:05 · 383 阅读 · 0 评论 -
2019南昌网络邀请赛-I-Max Answer-线段树(RMQ)+ 单调栈
思路:先用单调栈算出每个a[i]可以作为区间最小值的区间的最左边和最右边。如果a[i] > 0的话,直接整个区间的值都要,因为最小值为正数的区间的数全>0;如果a[i] < 0 的话,可以从点前位置,可以向左向右暴力搜索最小值。(数据有点水,所以可以过)。更好的做法是用线段树求维护每个点左边和,右边和的最大值。但是线段树是用来求解 解可以进行区间合并的,最常见的就是区...原创 2019-05-04 17:54:14 · 407 阅读 · 0 评论 -
2019暑假牛客第4场-C,sequence-线段树+单调栈
题面:这道题一直段错误,看了我一上午都没看出来,每班只有和别人AC的代码(和我的思路差不多的人去对比代码),结果发现线段树板子有问题,我也是醉了。思路:我用的是线段树+树状数组,代码的具体解释看代码注释。世界上最美好的快感莫过于,久WA之后AC的快感了。AC code:#include<bits/stdc++.h>#define per(i,a,b) for(int...原创 2019-07-29 21:33:21 · 332 阅读 · 0 评论 -
求线段交点个数-线段树-欧拉定理-2019暑假杭电多校1002-Rikka with Cake
题目传送门题解:线段树+离散化+欧拉定理线段树记得使用lazy标记,否则会TLE。#include<bits/stdc++.h>#define per(i,a,b) for(int i = (a);i <= (b);++i)#define rep(i,a,b) for(int i = (a);i >= (b);--i)#define INF 1e18usi...原创 2019-08-20 16:30:43 · 210 阅读 · 0 评论 -
主席树+二分-2019暑假牛客第9场-H-Cutting Bamboos
题面:思路:使用主席树快速查询区间内大于某个数的个数与总和。然后二分答案。#include<bits/stdc++.h>#define per(i,a,b) for(int i = (a);i <= (b);++i)#define rep(i,a,b) for(int i = (a);i >= (b);--i)using namespace std;ty...原创 2019-08-20 23:33:12 · 107 阅读 · 0 评论 -
E-All men are brothers-并查集-2019暑假牛客第9场
题面:题解:注意:直接计算组合数,会爆long long。先预处理,算出组合数(迭代)。#include<bits/stdc++.h>#define per(i,a,b) for(int i = (a);i <= (b);++i)#define rep(i,a,b) for(int i = (a);i >= (b);--i)#define INF 1e1...原创 2019-08-16 15:09:07 · 171 阅读 · 1 评论 -
关于莫队算法的一些看法(自己)
首先莫队算法刚开始学的时候花了不少时间,现在回过头来看还是很简单。特点:[已知l,r]区间的答案,可以在O(1)或者O(logn)(莫队套树状数组或者线段树)得到l,r+1的答案。自己的话来说就是区间只发生很小的变化,那么我们推导出递推公式,只要加上一个增量就得到新区间的答案。还有就是离线的特点,莫队算法就是要将要查询的区间排序,然后使用两个指针,去移动目标区间。因为排好序以及分块的原因,所...原创 2019-10-05 17:14:36 · 125 阅读 · 0 评论