摘要:
所谓图(graph),是图论中基本的数学对象,包括一些顶点,和连接顶点的边。 图可以分为有向图和无向图,有向图中的边是有方向的,而无向图的边是双向连通的。 邻接矩阵 (适用于稠密图) 用一个二维数组来记录各个点之间的关系,若u到v之间有一条边则可用map[u][v]=1来表示,具体如下 对应的无向图 阅读全文
摘要:
一、逆元定义 二、求逆元的方法 1.扩展欧几里得(exgcd) 适用于单个查找或者模p很大的情况下 , p 不是质数的时候也可以使用 此处是线性同余方程(a*x≡b(modm))的特殊情况 (b=1) 所求解x=x*b/d%m,若要保证x是最小的正整数则x=(x%m+m)%m 1 #include< 阅读全文
摘要:
一 、Dijkstra 只适用于单源最短路中所有边权都是正数的情况 二 、存储方式 1、稠密图用邻接矩阵 2、稀疏图用邻接表 三 、算法实现 用一个 dist 数组保存源点到其余各个节点的距离,dist[i] 表示源点到节点 i 的距离。将dist数组赋值为正无穷,dist[1]=0 用一个状态数组 阅读全文
摘要:
一、什么是前缀和 前缀和是一种预处理,用于降低查询时的时间复杂度。 举个例子:给定 n 个整数,然后进行 m 次询问,每次询问求一个区间内值的和。 如果用暴力写法,那每次询问都需要从区间左端点循环到区间右端点求和,时间复杂度较大。 这种时候就可以预先求出该数组的一维前缀和。 则 ans=s[R]-s 阅读全文