随笔分类 -  学习笔记

摘要:一张图是二分图们当且仅当它的点可以被分成两部分,而所有的变的两个端点都分属不同部分,分为左部和右部。 一张图的一个匹配是一些没有公共端点的边。 匈牙利算法是枚举每一个左部点x没然后枚举x所连的边,对应出点y,若y没有被先前的左点匹配,直接将x匹配y,否则尝试让y的原配左点去匹配其他右点,若原配匹配到 阅读全文
posted @ 2022-11-14 17:42 半步蒟蒻 阅读(134) 评论(0) 推荐(0)
摘要:spfa最短路算法,可以判断负环,平均时间复杂度O(kE),k<=2,被卡时间复杂度O(VE) inline void spfa(int s){/*以s为源点的单源最短路*/ queue<int>q; memset(in,0,sizeof(in));/*清空标记*/ memset(dis,0x3f, 阅读全文
posted @ 2022-11-14 17:42 半步蒟蒻 阅读(106) 评论(0) 推荐(0)
摘要:单源最短路,Dijkstra是基于贪心的思想,首先用dis[]记录源点到每个点的最短路径,再用一个数组保存已找到的最短路径的点,然后从dis中找最小值,该值则是源点到该值对应顶点的最短路径,并标记该店为已找到的最短路,选择最小值时,可以用线段树、平衡树、堆来进行优化,适用于无负权的图,时间复杂度O( 阅读全文
posted @ 2022-11-14 17:42 半步蒟蒻 阅读(129) 评论(0) 推荐(0)
摘要:线段树扫描线,矩形面积并,面积的求法模拟扫描线从下向上扫过图形,并快速计算当前扫描线被截得的长度。将横边赋上不同的权值,下边为1,上边为-1。所有横边按照y坐标生序排序,每次先碰到下边,再碰到上边。 矩形周长并,纵边总长度=sum(2被截的线段条数扫过的高度),横边总长度=sum(|上次截得的总长- 阅读全文
posted @ 2022-11-14 17:41 半步蒟蒻 阅读(46) 评论(0) 推荐(0)
摘要:树链剖分是将一棵树分成几条链,把树形变为线性以减少处理难度。 对于轻重链剖分,每个非叶子节点的儿子中儿子数量最多的那个儿子为重儿子,其余所有儿子为轻儿子。 重边指连接两个重儿子的边,其余的边为轻边。 重链指相邻重边连起来的一条重儿子的链。 每一条重链以轻儿子为起点。 dfs序中子树的dfs序是连续的 阅读全文
posted @ 2022-11-14 17:41 半步蒟蒻 阅读(126) 评论(0) 推荐(0)
摘要:动态开点线段树,只有需要用到一个点才新建该点,否则不进行构建,可以节省空间复杂度。 class SegmentTree{ struct tree{ int l,r,sz; }t[N<<2]; int tot,s[N<<2],root[N],rtc=1,L=-1e7,R=1e7; #define l( 阅读全文
posted @ 2022-11-14 17:40 半步蒟蒻 阅读(178) 评论(0) 推荐(0)
摘要:对于多次询问,vis[]等可以不用memset,可用标号法以节省时间 whlie(q--){ for(int i=l;i<=r;i++) if(vis[a[i]]!=q)ans++,vis[a[i]]=q; } 手动开O2 #pragma GCC optimize(2) 矩形判断相交 inline 阅读全文
posted @ 2022-11-14 17:40 半步蒟蒻 阅读(43) 评论(1) 推荐(0)
摘要:tarjan求无向图割点,若x是根节点,则子树个数>1时x时割点;若x是非根节点,当ipt[x]<=low[y]时x是割点,说明y的子树无法通过非父子边回溯到x的祖先,那么删掉x,图将分裂成两个字图,即x是割点。 void tarjan(int x,int root){ ipt[x]=low[x]= 阅读全文
posted @ 2022-11-14 17:37 半步蒟蒻 阅读(199) 评论(0) 推荐(2)
摘要:链式栈 template<class T> class Stack{ struct Link{ Link(){data=0;p=nullptr;} Link(const T&n,Link*np=nullptr){data=n;p=np;} T data; Link*p; }; Link*tp; un 阅读全文
posted @ 2022-11-14 17:17 半步蒟蒻 阅读(45) 评论(1) 推荐(0)
摘要:并查集本质上是维护一个森林,初始时森林里每个点是一个集合,之后将集合合并,查找一个点所在集合的代表元素,将两个集合的代表元素进行合并。使用时不要忘记初始化! 在一般情况下,可以使用路径压缩与按秩合并或启发式合并。 struct DSU{ int f[N<<1],sz[N<<1],rk[N]; inl 阅读全文
posted @ 2022-11-14 16:47 半步蒟蒻 阅读(44) 评论(2) 推荐(0)