随笔分类 -  数据结构

摘要:leetCode常用数据结构题单 1. 基础 栈可以用stack,或者vector来模拟操作,其实vector更方便,很多时候需要从头输出栈内元素。 没有什么写模板的必要,下面列出一些栈的基本操作 stack<int> st; vector<int> vec; st.push(1); vec.pus 阅读全文
posted @ 2025-07-10 21:38 zerolt 阅读(9) 评论(0) 推荐(0)
摘要:leetCode常用数据结构题单 1. 前缀和 1.1 前缀和基础 模板区域和检索-数组不可变 记数组的前缀和\(sums_i\)为下标\([0,i)\)的子数组的和 class NumArray { public: vector<int> sums; NumArray(vector<int>& n 阅读全文
posted @ 2025-06-11 22:14 zerolt 阅读(20) 评论(0) 推荐(0)
摘要:"[TJOI2018]异或" 把树剖套的线段树换成可持久化$Trie$树就结束了 cpp int val[Maxm], ch[Maxm][2], T_cnt; void ins(int i, int o, int p, int x, int now){ if(now now&1; if(ch[p][ 阅读全文
posted @ 2018-07-11 22:27 zerolt 阅读(166) 评论(0) 推荐(0)
摘要:"[HEOI2013]ALO" 从小到大枚举能量次大的宝石$i$,令在它之前的第一个能量大于它的宝石在$l_1$,第二个在$l_2$,同理设$r_1,r_2$ 则$[l_2+1, r_1 1]$与$[l_1+1, r_2 1]$包含了所有可能使$i$作为能量次大宝石的区间 求$l_1, l_2, r 阅读全文
posted @ 2018-07-11 16:58 zerolt 阅读(144) 评论(0) 推荐(0)
摘要:题目描述 被各种毒瘤线段树虐过后突然感觉这道卡了我一万年的树套树很水 (就一道模板题,不想讲了) 代码 阅读全文
posted @ 2018-04-15 18:01 zerolt 阅读(152) 评论(0) 推荐(0)
摘要:题目描述 最喜欢这种细节少少的组合型问题了,感觉被树套树虐过之后其他数据结构都简单了 这题就是简单的树链剖分+主席树,好像只要会就不是很容易写错 信仰每一种宗教的单独建一颗线段树就好了 代码 阅读全文
posted @ 2018-03-09 20:51 zerolt 阅读(143) 评论(0) 推荐(0)
摘要:题目描述 题目我也不知道启发式合并到底是什么东西 好吧,启发式合并就是把小的集合往大的集合合并,学并查集的时候不是有把小树根的父亲设为大树根的操作吗,这大概就是启发式合并的一个典例对于这道题,我的做法是把小SBT的所有结点从小到大全部加入到大SBT中(本来打了个Tre... 阅读全文
posted @ 2017-12-17 12:17 zerolt 阅读(106) 评论(0) 推荐(0)
摘要:题目描述 题目 (指针版主席树) 阅读全文
posted @ 2017-12-05 13:54 zerolt 阅读(145) 评论(0) 推荐(0)
摘要:题目描述 题目考试有想过每行建一棵树,但是发现空间会爆,就去打模拟了。。。 然而,正解就是每行建一棵树(最后一列单独建一棵),只不过是把插入操作改成删除操作就好了。 因为每次离队影响到的只会是人所在的行和列(如果是最后一列的离队只会影响行)。 对于后面插进来的元素用v... 阅读全文
posted @ 2017-12-01 19:51 zerolt 阅读(293) 评论(0) 推荐(0)
摘要:[[Luogu3391]【模板】文艺平衡树(Splay)] 非指针版 指针版(以前不压行的代码看着好长好啰嗦啊) 阅读全文
posted @ 2017-11-27 20:11 zerolt 阅读(143) 评论(0) 推荐(0)
摘要:1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 const int N=100010,inf=10000010; 8 int n; 9 10 struct node 11 { 12 node* ch[2]; 13 int r,s,v; 14 ... 阅读全文
posted @ 2017-11-24 18:23 zerolt 阅读(132) 评论(0) 推荐(0)