草庐IT

2023年 ZZU ACM 招新赛暨选拔赛题解

比赛题目链接感谢wb学长贡献的B、L题解A.NANA与字符串—找规律题目链接注意题目中字符串中只有a,b两个字符因此只要找到左右两端点字符相同的子串,这个子串一定回文,这里不在证明求长为偶数回文串数量,就等于求相同的两个字符,而下标奇偶性不同的数对数量,比如0,1两个下标都是‘a’,这是偶数回文同理求长度为奇数回文,等于求下标奇偶性相同的数对数量求奇数时需要注意,因为奇偶性相同是同类,求数对数量即求组合数n*(n-1)/2最后加上每个单个的字符偶数不需要除以2是因为奇偶性不同,不会重复#include#includeusingnamespacestd;#defineintlonglongsig

图论之寻找桥边

目录①基准法②并查集③逆向思维之标记环边④并查集压缩路径①基准法在图论中,一条边被称为“桥”代表这条边一旦被删除,这张图的连通块数量会增加。等价地说,一条边是一座桥当且仅当这条边不在任何环上。一张图可以有零或多座桥。因此找桥边最简单粗暴的思想,也就是基准算法的思想就是可以暴力枚举每一条边,将这条边删除后,判断图的连通分量有没有因此而增加,如果图的连通分量增加了,那么说明这是一条桥边。如图1所示,我们将图的每一条边都删除一遍,然后数一下图的连通分量有没有因此而增加,如果图的连通分量因此增加了,那么说明我们刚刚删除的这条边就是桥边。图1基准暴力枚举图的连通分量的个数可以通过深度遍历的次数来计算,将

【图论】LCA(倍增)

一.LCA介绍LCA通常指的是“最近共同祖先”(LowestCommonAncestor)。LCA是一种用于解决树或图结构中两个节点的最低共同祖先的问题的算法。在树结构中,LCA是指两个节点的最近层级的共同祖先节点。例如,考虑一棵树,其中节点A是节点B和节点C的祖先,而节点D是节点B和节点C的共同祖先,但节点D不是最低层级的共同祖先。在这种情况下,LCA就是节点D。LCA算法在计算机科学中有广泛的应用,例如在计算树的最近公共祖先、解决图的连通性问题、计算有向无环图(DAG)的最近公共祖先等方面。常见的LCA算法包括基于深度优先搜索(DFS)的算法、基于倍增法的算法和Tarjan算法等。LCA算

5.图论(0x3f:从周赛中学算法 2022下)

来自0x3f【从周赛中学算法-2022年周赛题目总结(下篇)】:https://leetcode.cn/circle/discuss/WR1MJP/周赛中的图论题目比较少,除了下面选的DFS、BFS、拓扑排序、基环树、二分图判定等,还有最短路、DFS时间戳等(这些可以在上半年的周赛题目中学到)。注:偶见于周赛第三题(约占10%)和第四题(约占13%)。题目难度备注2368.受限条件下可到达节点的数目1477DFS/BFS典型题2385.感染二叉树需要的总时间1711DFS+BFS2359.找到离给定两个节点最近的节点17152360.图中的最长环1897内向基环树+时间戳技巧2509.查询树中

概率图论:了解概率分布、概率独立性和随机化

作者:禅与计算机程序设计艺术概率图模型(ProbabilisticGraphicalModel)(PGM)是现代统计学习中的一个重要工具,它通过描述变量间的依赖关系和概率分布来对复杂系统进行建模。概率图模型由两部分组成:一是概率模型,它定义了变量之间的联合概率分布;二是结构模型,它定义了变量之间可能的因果影响。在深度学习领域中,PGM被广泛应用于表示数据生成过程中的概率性依赖关系,可以方便地表示各种复杂的结构。本文将通过简要介绍概率图模型及其背后的数学知识,并结合一些实际案例,为读者提供概率图模型的相关背景知识和方法论。希望能够帮助读者更加深入地理解和运用概率图模型。2.基本概念术语说明(1)

【数据结构与算法】图(Graph)【详解】

文章目录图图的基本概念一、图的定义二、图的基本概念和术语1、有向图2、无向图3、简单图4、多重图5、完全图(也称简单完全图)6、子图7、连通、连通图和连通分量8、强连通图、强连通分量9、生成树、生成森林10、顶点的度、入度和出度11、边的权和网12、稠密图、稀疏图13、路径、路径长度和回路14、简单路径、简单回路15、距离16、有向树图的存储结构一、邻接矩阵二、邻接表三、十字链表四、邻接多重表五、边集数组图的遍历一、深度优先遍历1、DFS算法2、DFS算法的性能分析3、深度优先的生成树和生成森林二、广度优先遍历1、BFS算法2、BFS算法性能分析三、图的遍历与图的连通性一、普里姆(Prim)算

【数据结构与算法】图(Graph)【详解】

文章目录图图的基本概念一、图的定义二、图的基本概念和术语1、有向图2、无向图3、简单图4、多重图5、完全图(也称简单完全图)6、子图7、连通、连通图和连通分量8、强连通图、强连通分量9、生成树、生成森林10、顶点的度、入度和出度11、边的权和网12、稠密图、稀疏图13、路径、路径长度和回路14、简单路径、简单回路15、距离16、有向树图的存储结构一、邻接矩阵二、邻接表三、十字链表四、邻接多重表五、边集数组图的遍历一、深度优先遍历1、DFS算法2、DFS算法的性能分析3、深度优先的生成树和生成森林二、广度优先遍历1、BFS算法2、BFS算法性能分析三、图的遍历与图的连通性一、普里姆(Prim)算

拓扑排序 (算法思想+图解+模板+练习题)

拓扑排序有向无环图一定是拓扑序列,有向有环图一定不是拓扑序列。无向图没有拓扑序列。首先我们先来解释一下什么是有向无环图:有向就是我们两个结点之间的边是有方向的,无环的意思就是整个序列中没有几个结点通过边形成一个圆环。下图就是一个有向无环图,它也一定是拓扑序列。下图就是有向有环图:拓扑序列:首先我们引入度的概念:对于有向图每个结点都有入度和出度,入度就是指向该结点的边数,出度就是该结点指向其他结点的边数。如第一个图:A的入度为0,出度为2;B的入度为1,出度为1;C的入度为1,出度为1;D的入度为2,出度为0;总结一下拓扑排序就是只有从前指向后的边,没有从后指向前的边。如果是一个有向无环图,那么

拓扑排序 (算法思想+图解+模板+练习题)

拓扑排序有向无环图一定是拓扑序列,有向有环图一定不是拓扑序列。无向图没有拓扑序列。首先我们先来解释一下什么是有向无环图:有向就是我们两个结点之间的边是有方向的,无环的意思就是整个序列中没有几个结点通过边形成一个圆环。下图就是一个有向无环图,它也一定是拓扑序列。下图就是有向有环图:拓扑序列:首先我们引入度的概念:对于有向图每个结点都有入度和出度,入度就是指向该结点的边数,出度就是该结点指向其他结点的边数。如第一个图:A的入度为0,出度为2;B的入度为1,出度为1;C的入度为1,出度为1;D的入度为2,出度为0;总结一下拓扑排序就是只有从前指向后的边,没有从后指向前的边。如果是一个有向无环图,那么

离散数学与组合数学-04图论

文章目录离散数学与组合数学-04图论4.1图的引入4.1.1图的示例4.1.2无序对和无序积4.1.3图的定义4.2图的表示4.2.1集合表示和图形表示4.2.2矩阵表示法4.2.3邻接点与邻接边4.3图的分类4.3.1按边的方向分类4.3.2按平行边分类4.3.3按权值分类4.3.4综合分类方法4.4图论基础-子图和补图4.4.1子图4.4.2完全图4.4.3补图4.5图论基础-握手定理4.5.1结点的度数4.5.2握手定理4.5.3图的度数序列4.6图论基础-图的重构4.6.1引言4.6.2图的同构定义4.6.3图同构的必要条件4.7图论基础-通路和回路4.7.1通路和回路的概念4.7.2