摘要: 阿Q的密室 https://hszxoj.com/images/211012_w8wh3kPF4a.png 12.18.2021唯一一道A掉的题 分析题意可知,每组中的密室可以相互到达,则密室中至少有n-1条边,可以用最小生成树算法。 Prim (关于全机房就我一个用Prim这件事) Prim是基于 阅读全文
posted @ 2022-05-13 09:33 Chano_sb 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 对一个有向无环图(Directed Acyclic Graph简称DAG)G进行拓扑排序,是将G中所有顶点排成一个线性序列,使得图中任意一对顶点u和v,若边<u,v>∈E(G),则u在线性序列中出现在v之前。通常,这样的线性序列称为满足拓扑次序(Topological Order)的序列,简称拓扑序 阅读全文
posted @ 2022-05-13 09:33 Chano_sb 阅读(67) 评论(0) 推荐(0) 编辑
摘要: 树状数组 利用二进制的一些性质使得区间修改、区间查询效率达到log的数据结构 lowbit lowbit(x)求出二进制x中末尾的1 公式:lowbit(x)=x&-x; 举个例子: 计算时用补码,正数的补码是其原码,负数的补码是反码+1 14(00001110) &-14(11110010) __ 阅读全文
posted @ 2022-05-13 09:32 Chano_sb 阅读(28) 评论(0) 推荐(0) 编辑
摘要: 重载小于号错误的写法 sturct node{ int id,dis; bool operator<(node x)const{ return x.dis<dis; } } 正确的写法 sturct node{ int id,dis; bool operator<(node x)const{ ret 阅读全文
posted @ 2022-05-13 09:31 Chano_sb 阅读(27) 评论(0) 推荐(0) 编辑
摘要: 无向图求割边 inline void Tarjan(int u,int fa){ dfn[u]=low[u]=++Time; for(int i=head[u];i!=-1;i=e[i].next){ int v=e[i].to; if(!dfn[v]){ Tarjan(v,u); low[u]=m 阅读全文
posted @ 2022-05-13 09:28 Chano_sb 阅读(39) 评论(0) 推荐(0) 编辑
摘要: 图片来自蒟蒻的blog ST表 一个可以解决RMQ(区间最值问题)的数据结构,相比于线段树O(nlogn)初始化之后,查询只需要O(1),适用于没有更新,查询较多的题目 void init_St(){ for(int i=1;i<=n;++i){ h[i][0]=num[i]; g[i][0]=nu 阅读全文
posted @ 2022-05-13 09:28 Chano_sb 阅读(28) 评论(0) 推荐(0) 编辑
摘要: 针对一个序列进行区间操作,假设[l,r]都加上data 令差分数组d[i]为a[i]-a[i-1](原数组),则操作完成之后差分数组中只有两个,量改变,d[l]+data,d[r+1]-data。 另外,根据定义,显然有d[1--r]前缀和为原来的元素a[r]。利用这种性质,树状数组完成了区间修改, 阅读全文
posted @ 2022-05-13 09:27 Chano_sb 阅读(60) 评论(0) 推荐(0) 编辑
摘要: 板子 求区间最值 while(!q1.empty() && q1.back().data>=a[i])q1.pop_back(); //队列中的元素单调递增,如果当前元素比队尾元素大就无法保证单调性,应该弹出 q1.push_back((element){a[i],i});//插入元素 } for( 阅读全文
posted @ 2022-05-13 09:26 Chano_sb 阅读(17) 评论(0) 推荐(0) 编辑
摘要: 莫队 分块 是一种暴力结构 给定一个序列a,q个询问,求区间[L,R]权值和。 显然树状数组,线段树等结构都可做 没有学习它们的时候我们是如何解决这个问题的? 前缀和 那么再加上更新 如果不借助上述数据结构只能暴力维护 for(int i=l;i<=r;++i)a[i]+=data; for(int 阅读全文
posted @ 2022-05-13 09:24 Chano_sb 阅读(36) 评论(0) 推荐(0) 编辑
摘要: Martix,即矩阵,是线性代数中的一个重要内容。 定义(摘自oi-wiki): 对于矩阵 A ,主对角线是指 A[i][i] 的元素。 一般用 I 来表示单位矩阵,就是主对角线上为 1,其余位置为 0。 运算: 加减法是逐个元素进行的 我们规定:矩阵乘法只有在第一个 阅读全文
posted @ 2022-05-13 09:22 Chano_sb 阅读(139) 评论(0) 推荐(0) 编辑
点击右上角即可分享
微信分享提示