常用数据结构
雪岩ding
判题机你不讲武德~
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
树状数组 模板题整理
树状数组整理: 1)单点修改,区间查询 例题:LibreOJ - 130 ac code: #include<bits/stdc++.h> using namespace std; const int maxn=1e6+1; typedef long long ll; ll p[maxn]; int a[maxn]; int n,m; int lowbit(int x){ return x&(-x); } void update(int x,ll add){//单点修改 for原创 2021-10-26 17:33:14 · 776 阅读 · 0 评论 -
线段树 模板题整理
线段树模板题整理 (基于洛谷OJ) 1.P3372 【模板】线段树 1 题目描述 如题,已知一个数列,你需要进行下面两种操作: 将某区间每一个数加上 kk。 求出某区间每一个数的和。 输入格式 第一行包含两个整数 n, mn,m,分别表示该数列数字的个数和操作的总个数。 第二行包含 nn 个用空格分隔的整数,其中第 ii 个数字表示数列第 ii 项的初始值。 接下来 mm 行每行包含 33 或 44 个整数,表示一个操作,具体如下: 1 x y k:将区间 [x, y][x,y] 内每个数加上 kk。 2原创 2021-07-29 19:30:31 · 2528 阅读 · 0 评论 -
树状数组用法笔记
树状数组用法笔记 1.问题引入:为什么要用树状数组?它有何意义吗? 树状数组是一种十分实用的数据结构,它可以把时间复杂度为O(n)的求前缀和降低到O(logn), 并且是以二进制的思维去操作,而不是以十进制; 2.lowbit函数: 作用:求x的二进制表示数的最低位1代表多少? 比如lowbit(4)=4;lowbit(2)=2;lowbit(6)=2; int lowbit(int x){ return x&-x; } 3.辅助数组C[maxn]; C[i]=A[i-lowbit(i)+1]+原创 2021-04-24 09:28:01 · 390 阅读 · 0 评论 -
priority_queue的用法详解
1.声明头文件 2.最常用的几个函数: top 访问队头元素 empty 队列是否为空 size 返回队列内元素个数 push 插入元素到队尾 (并排序) pop 弹出队头元素 3. less<>:常用的降序排列bool型函数 greater<>:常用的升序排列bool型函数 4.int 例子 #include<bits/stdc++.h> using namespace std; int main(){ priority_queue<int,vecto原创 2021-04-23 22:42:20 · 458 阅读 · 0 评论
分享