随笔分类 -  数据结构

摘要:并查集 在每个集合中选择一个元素,作为整个集合的代表。使用一个树形结构存储每个集合,树上的每个节点都是一个元素,树根是集合的代表元素。 存储时,记录每个节点 \(x\) 的父亲 \(fa[x]\) 。查询 \(x\) 和 \(y\) 是否在同一集合时,分别从两个点出发,寻找它们的树根。若树根相同,则 阅读全文
posted @ 2024-08-06 15:44 mj666 阅读(105) 评论(0) 推荐(0)
摘要:树状数组 一、单点修改和区间查询 lowbit函数 \[lowbit(x)=x\&(-x) \]作用:得到 \(x\) 二进制最右侧的1。 如,\(x=(0010010011000)_2\) ,则 \(-x=x取反+1=(1101101101000)_2\) , \(x\&(-x)=(0000000 阅读全文
posted @ 2024-07-31 15:06 mj666 阅读(53) 评论(0) 推荐(0)
摘要:单调栈和单调队列 P5788 #include <bits/stdc++.h> using namespace std; const int N=3e6+5; int n,a[N],ans[N],top,stk[N]; int main(){ scanf("%d",&n); for(int i=1; 阅读全文
posted @ 2024-07-27 10:46 mj666 阅读(33) 评论(0) 推荐(0)