随笔分类 - 数据结构
摘要:求满足以上条件的i的个数 显然是队列的题(甚至只要维护head和tail,连队列的数组都不用开hhh #include<bits/stdc++.h> using namespace std; int n,k,a[3*int(1e5)]; void solve(){ cin>>n>>k; for(in
阅读全文
摘要:有点疑惑为什么会出现在数据结构的题单里 明明是STL君啦! #include<bits/stdc++.h> using namespace std; const int maxn=3*int(1e5)+7; vector<int>s[maxn]; int n,m,col[maxn]; int mai
阅读全文
摘要:询问区间内有多少数大于等于x,并且支持区间修改 发现线段树做不了 树状数组也不行 原来是分块! 分块是一种优雅的暴力,把长度为n的区间分成sqrt(n)块,每块长度为sqrt(n) 如果不是整的多出几个也没关系 原则是完整的块数直接求,零散的再暴力 比如要查询 1 2 3 4 5 6 7 8 9 1
阅读全文
摘要:看完题的第一眼就在怀疑tag 能二分的事为什么要写线段树 普通二分没法支持动态插入 用c++自带的stl set<int>st; st.clear()清空 st.insert(x)插入 r返回第一个>=x的数.upper_bound()为第一个>x的数 l返回第一个<x的数,只要用r指向的位置-1即
阅读全文
摘要:每次染色子树,询问某个节点此时的颜色。 建树比较特殊,先dfs一遍用时间戳dfn给每个节点编号, 把该点的子树转化成它管辖的连续区间 照常染色即可 注意query的时候,问点q,传入参数应该是dfn(q),而非q。 -- #include <iostream> #include <math.h> #
阅读全文
摘要:扫描线的思想本质上是通过维护有效长度,切割矩形再进行累加。 如何实现维护有效长度? 假设从左往右扫描,扫到一个矩形的左边时,该矩形的面积开始累加,扫到矩形的右边时,该矩形不再做贡献。 -- 以下是废物李一水对该模板的浅薄理解,有错请及时cue我.. 为什么把pushup写到了update retur
阅读全文
摘要:又傻逼又毒瘤 我还卡了这么久 说明我也又傻逼又毒瘤 #注意每个case后面要有一行空格; #注意sum会爆int,所以无论是数组还是函数还是输出时,都要开longlong #为什么可以直接暴力修改?sqrt是个神奇操作,无论多大的数,在很有限的次数里都会开到1,总的修改次数不会很多 #判断该区间是否
阅读全文
摘要:也可以用st表做 但st表不支持动态更新 数据结构码得还是太少,本废物给您表演一个花式手抖 数据大注意scanf; #include <iostream> #include <math.h> #include <string.h> #include <vector> #include <map> #
阅读全文
摘要:在做https://codeforces.com/contest/1579/problem/D时 思路出了不会写 赛后看b站解说 你就开个优先队列每次取两个top出来--; 我: 这就去学。 struct node{ int id,val; bool operator < (const node t
阅读全文
摘要:是getsum(a[i]-1) 不是getsum(i-1); 20210920 #include<bits/stdc++.h> using namespace std; const int maxn=1e5; int a[maxn],n,c[maxn],ans[maxn]; int lowbit(i
阅读全文
摘要:#如果update写成了边界为l==r,那跟没建树有什么区别 #没写pushdown的话就直接回溯sum,会出大锅,会存在大区间的ans和lazy都改了,但小区间的还是保持原样 当这个区间又被查询的时候,会出现大区间=小区间+小区间(tree i=tree i*2+tree i*2+1),相当于没改
阅读全文
摘要:#我大爷的读入被卡了 #对于ADD,END什么的处理,开个char,然后判断s[0],嘛 自己调的代码~ #include <iostream> #include <math.h> #include <string.h> #include <vector> #include <map> #inclu
阅读全文
摘要:其实想了很久,我也不觉得是自己脑子反应慢,因为老会纠结一些奇怪的点.. 也许,因此也对算法有了奇怪的理解吧。 #1,lazytag的作用是,在对同一区间进行多次操作再统一提问时,相当于先存操作数,提问时再一并处理。 lazytag下放的尽头是?放到树的某个节点管辖的区间可以被修改的区间完全包含时,就
阅读全文