iiiiikun
iiiiikun
全部文章
数据结构
bfs(11)
codeforce(2)
codeforces(49)
dfs(27)
dp(65)
icpc(2)
kmp(2)
kruskal(1)
min25(1)
spfa(3)
stl(3)
三分(1)
二分(11)
二分图(3)
二叉树(2)
二叉树遍历(1)
倍增(1)
几何(1)
前缀和(6)
剪枝(1)
动态规划(2)
单调栈(1)
博弈论(1)
双指针算法(1)
双端队列(1)
唯一分解定理(1)
回文(1)
图论(4)
堆(1)
字符串(2)
尺取法(1)
差分(4)
差分约束(1)
并查集(7)
循环节(1)
快速幂(3)
思维(5)
思维题(6)
拓扑排序(2)
排序(1)
数位dp(3)
数位交换(1)
数学题(1)
数论(17)
最大子矩阵(2)
最小生成树(8)
最短路(17)
最长公共上升子序列(1)
有向图强联通分量(4)
未归档(8)
权值线段树(2)
构造(2)
枚举(2)
栈(1)
树形dp(4)
树状数组(3)
树的直径(1)
概率(1)
模拟(1)
模拟赛(1)
模拟退火(1)
模板(9)
欧几里得(1)
欧拉回路欧拉路径(1)
牛客多校(1)
状态压缩(1)
矩形面积(1)
矩阵乘法(1)
矩阵快速幂(1)
离散化(1)
筛素数(1)
线段树(4)
网络流(3)
背包(1)
菜鸟(14)
蓝桥(23)
蓝桥杯(2)
蓝桥训练(2)
贪心(11)
递归(1)
递推(2)
链表(2)
队列(3)
题解(2)
马拉车(2)
高精度(1)
归档
标签
去牛客网
登录
/
注册
iiiiikun的博客
老废物了
全部文章
/ 数据结构
(共7篇)
树
大致题意:让你求以每个点为中心,所有点到这个中心的距离和。 思路:看了大佬代码,先处理包含每个点的子树的个数,我们当且仅把1当作根结点,然后往下传。然后处理出所有点到1的距离和, res[u] += num[j]; res[u] += res[j];我们可以很好的证明出,u以后的子节点到u的距离无非...
2020-12-17
0
341
(可持久化线段树)主席树
上面就是我的丑图hh,一般主席树开40倍空间就可以了,每次插入的时候只需要比较前一个版本和这一个版本就行了,然后每个版本是区间可减的,比如询问l到r之间的第k大,只需要处理r-(l-1)版本的数量即可。 #include<bits/stdc++.h> using namespace s...
2020-12-17
0
483
odt 珂朵莉树
要保证数据随机化 操作1 :区间加 操作2 :区间赋值 操作3 :区间和 操作4 : 区间幂次和 #include<stdio.h> #include<string.h> #include<algorithm> #include<map> #incl...
2020-12-17
0
397
ac自动机(求每个单词在单词所组成的论文中出现的次数)
思路:其实就是求每个单词的前缀中有多少后缀出现过某个单词,如果正向通过单词来枚举每个后缀,复杂度过高,那么我们反着枚举,然后惊奇的发现,这不就是next数组吗!那么就是把原题转化成了一个dag图,只需要把某个后继点的值累加到每个前缀就可以了,最后在插入的时候记录下每个单词的的位置,由于是dag图,我...
2020-12-17
0
416
普通平衡树 fhq yyds
#include<bits/stdc++.h> using namespace std; int cnt; int root; int x,y,z; struct node{ int l; int r; int val; int key; ...
2020-12-17
0
403
fhqtreap 维护区间翻转
#include<bits/stdc++.h> using namespace std; struct node{ int l; int r; int val; int key; int sz; int lz; }fhq[100010]; int root; int...
2020-12-17
0
698
树套树板子
#include<iostream> #include<cstring> #include<stdlib.h> #include<time.h> using namespace std; const int N=50010; int n,m; in...
2020-12-17
0
408