摘要:
LIS(Longest Increasing Subsequence)即最长上升子序列 给定一个序列,LIS是指其所有上升子序列中最长的一个 举个例子a={100,98,300,385,200,166}其最长上升子序列为{100,300,385} 朴素dp求法O(n*n) 算法描述 f[i]指以i为 阅读全文
posted @ 2022-05-13 09:35
Chano_sb
阅读(186)
评论(0)
推荐(0)
摘要:
一、什么是图的最小生成树(MST) N个点用N-1条边连接成一个连通块,形成的图形只可能是树,没有别的可能。 一个有N个点的图,边一定是大于等于N-1条的。图的最小生成树,就是在这些边中选择N-1条出来,连接所有的N个点。这N-1条边的边权之和是所有方案中最小的。 二、最小生成树用来解决什么问题? 阅读全文
posted @ 2022-05-13 09:35
Chano_sb
阅读(555)
评论(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
阅读(95)
评论(0)
推荐(0)
摘要:
阿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
阅读(236)
评论(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
阅读(44)
评论(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
阅读(41)
评论(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
阅读(59)
评论(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
阅读(43)
评论(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
阅读(73)
评论(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
阅读(30)
评论(0)
推荐(0)

浙公网安备 33010602011771号