随笔分类 -  E - 数据结构

摘要:写一下学到了新东西的几个题目,数学太差所以很简单的数学也不会 1001 树上笛卡尔树+倍增 对于大根堆笛卡尔树(后称为新树)而言,子树内的点都可以吃掉,所以如果能做出这么一个结构,对每个查询x,就只需要找到新树上x到根的路径上最深的\(a[fa[x]]-sum[x]>y\)的点对应的x,答案为\(s 阅读全文
posted @ 2025-08-02 15:59 lyrrr 阅读(19) 评论(0) 推荐(0)
摘要:最近在学习数据结构,整理一个学(吃)习(shi)资料合集自用(收藏夹放不下了。。 尽量按难度排序 因为听说lxl是数据结构大神,所以搜了神秘lxl题单 经验帖子: dfs序求LCA https://www.cnblogs.com/alex-wei/p/18356369/SegmentTreePart 阅读全文
posted @ 2025-07-23 16:48 lyrrr 阅读(21) 评论(0) 推荐(0)
摘要:如果对于一个节点p,如果子树内的点对自身有贡献,就可以在递归子树时用桶和差分来维护答案。 以这道题目为例:https://www.luogu.com.cn/problem/P1600 这个博主提供了详细题解很强:https://www.cnblogs.com/lfyzoi/p/10221884.ht 阅读全文
posted @ 2025-07-23 15:01 lyrrr 阅读(28) 评论(0) 推荐(0)
摘要:https://www.luogu.com.cn/problem/P4216 树剖题,题解区第一篇题解感觉很有意思 阅读全文
posted @ 2025-07-18 10:14 lyrrr 阅读(3) 评论(0) 推荐(0)
摘要:我花了很久时间终于明白我写不出h并不是因为我代码能力不行而是我不会主席树也不会线段树合并。 阅读全文
posted @ 2025-03-08 19:21 lyrrr 阅读(8) 评论(0) 推荐(0)
摘要:https://atcoder.jp/contests/abc378/tasks/abc378_e #include <bits/stdc++.h> using namespace std; #define int long long #define lowbit(x) (x&(-x)) #defi 阅读全文
posted @ 2024-12-13 18:37 lyrrr 阅读(20) 评论(0) 推荐(0)
摘要:本来写完了但是忘保存了。。寄 阅读全文
posted @ 2024-12-12 22:00 lyrrr 阅读(36) 评论(0) 推荐(1)
摘要:板子题 符合堆和二叉搜索树性质,treap也是一种特殊笛卡尔树 堆性质就是树下层元素的值都小于等于或大于等于上层元素的值 二叉搜索树是一个左儿子小于自身,右儿子大于自身的树,在笛卡尔树中,通常为数组索引 这时候就可以用单调栈来维护右链建树 #include<iostream> #include<al 阅读全文
posted @ 2024-11-27 10:40 lyrrr 阅读(13) 评论(0) 推荐(1)
摘要:可以再加一个struct把整个树封装起来。。跟oiwiki学的 #include<bits/stdc++.h> using namespace std; #include<bits/stdc++.h> using namespace std; struct Node{ Node *ch[2]; in 阅读全文
posted @ 2024-11-25 17:38 lyrrr 阅读(36) 评论(0) 推荐(0)
摘要:线段树一些不太板的练手? hdu单峰数列 权值线段树 hdu第7场1007https://acm.hdu.edu.cn/showproblem.php?pid=7511 #include <iostream> #include <algorithm> #include <cstring> #incl 阅读全文
posted @ 2024-09-11 18:38 lyrrr 阅读(20) 评论(0) 推荐(0)
摘要:#include<bits/stdc++.h> using namespace std; #define pii pair<int,int> #define mkp make_pair #define pb push_back #define mid ((l+r)>>1) #define ls(x) 阅读全文
posted @ 2024-09-11 18:28 lyrrr 阅读(14) 评论(0) 推荐(1)
摘要:放一个cdq分治板子。 是洛谷陌上花开代码搬过来的。感觉要点在于去重(完全相同的点),没了。 第一维直接排序 第二维cdq分治,因为合并时前一半的a必然小于后一半的,所以可以重新按b排序算前面的数对于后面的数贡献。 第三维树状数组需要每次清空算c的贡献 这样就是一个\(O(logn^2)\) #in 阅读全文
posted @ 2024-08-29 00:55 lyrrr 阅读(36) 评论(0) 推荐(0)
摘要:最近做了一个CFround166的d题然后。。。我:这个不能二分,因为二分要在有序的序列上进行。 佬:答案具有单调性就可以二分。 题目:https://codeforces.com/contest/1976/problem/D 首先观察到几个显而易见的性质: 1.若要翻转[l,r],[l,r]中的( 阅读全文
posted @ 2024-08-27 22:50 lyrrr 阅读(18) 评论(0) 推荐(0)