常用数据结构
雪岩ding
判题机你不讲武德~
展开
-
树状数组 模板题整理
树状数组整理:1)单点修改,区间查询例题:LibreOJ - 130ac 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 · 368 阅读 · 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 · 2020 阅读 · 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 · 142 阅读 · 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 · 233 阅读 · 0 评论