随笔分类 - 模板
摘要:用到的各个数组的意义 anc[i][j]表示从点i向根节点走(2^j)步到达的点的编号 dep[i]表示点i的深度 dis[i]表示点i到根节点之间的距离(i到根节点的简单路径上边的权值之和) ###算法分析: (1)题目给出了一颗无根树,因此我们建双向边,并任意选一个点作为根节点(我选择1) (2
阅读全文
摘要:算法基础:倍增+dp ##算法流程 (1)合并(预处理):把每一个大的区间分成两部分,求其最大值 (2)查询,求log(len),由一个从区间首端开始和一个由区间尾端开始的长度均为2^log(len)的两个区间中的最大值相互比较,求得最大值。 tips:f[i][j]代表以i为起点,长度为2^j的区
阅读全文
摘要:之前一直不想写的手写堆。 是大根堆模板,小根堆直接换一下转移的符号就行。 pile[maxn]是存储堆的数组,len是堆中元素的数量。 写法非常简单。 Code void put(int k) { pile[++len]=k; int pla=len; while(pla>1) { int fa=p
阅读全文
摘要:一、辛普森公式(二次函数积分公式): 用途:求一个积分的近似值 拓展用途:由于积分的几何意义是函数图像和x轴所围成的图形的面积,因此常用于在计算几何中计算面积 tips1:这里的f(x)可以是任意一个函数。 tips2:但自适应辛普森法只能用于定义域连续不中断的函数(注意是定义域连续不中断即可,函数
阅读全文
摘要:dfn[now]表示在now点在dfs搜索树中的dfs序。 low[now]表示的是now通过后向边、横叉边能到达的dfn最小的点的dfs序。 我们取一个强连通分量中dfn最小的点作为整个强连通分量的代表元素。 因此low[now]的实际意义就是now所在的强连通分量的代表元素的点的dfn值。 to
阅读全文
摘要:和原板子区别不大,更符合我的代码习惯 #include<cstdio> #include<algorithm> #include<cstring> #include<queue> using namespace std; const int maxn = 2e5+5; int n, m, head[
阅读全文
摘要:#include<cstdio> #include<algorithm> #include<cstring> #include<queue> using namespace std; const int maxn = 2e5+5; struct mint { int nxt, v, w; }e[ma
阅读全文
摘要:#include<cstdio> using namespace std; int const maxn = 1e6; int n, m; long long sum[4 * maxn + 5], input[maxn+5], add[maxn * 4 + 5]; inline void build
阅读全文

浙公网安备 33010602011771号