摘要: /* 归并排序:不断将数组切分为两部分 递归切分直到数组长度为1,之后逐渐有序合并 */ #include <cstdio> #include <iostream> #include <cmath> using namespace std; //归并 小-->大 void Merge(int a[] 阅读全文
posted @ 2019-07-25 13:41 Bankarian 阅读(197) 评论(0) 推荐(0) 编辑
摘要: tarjan打法博大精深,有向图强连通,无向图点双连通、边双连通、割点、割边~~学得寡人头大,今天整理整理,明天继续干 ~(*^*)~ 有向图求强连通: //强连通是对于有向图而言的,无需考虑某个边的重复访问//单个点也是一个强连通分量,要根据题目的意思对结果进行特判//dfs自上而下,而强连通的分 阅读全文
posted @ 2019-07-14 23:04 Bankarian 阅读(315) 评论(0) 推荐(0) 编辑
摘要: 由于刷CCF时遇到了类似的问题,最近学习了下Tarjan求强连通的算法。 基本的原理:通过Dfs遍历点,某点在拓展后仍能回归到自己,则该点处在图的一个强连通分量上。 基本工具: int dfn[i]:记录i在dfs中第一次被访问到的次序(时间序,只增不减)。 int low[i]:i所能到达的最早的 阅读全文
posted @ 2019-07-12 18:02 Bankarian 阅读(589) 评论(0) 推荐(0) 编辑
摘要: Floyd:稳定的O(n^3)复杂度,一般只在节点数 < 300 时候考虑。除了求最短路,还可以用来判断图的连通性。 基本结构很简单:最外层遍历中转节点,内层遍历两端点,具体为什么可参见我的另一条博客。最近做题遇到了几道用Floyd的题目,又有了新的理解:设uv为两端点,k为中转节点,那么Floyd 阅读全文
posted @ 2019-07-09 19:33 Bankarian 阅读(141) 评论(0) 推荐(0) 编辑
摘要: BELLMAN-FORD /** * Bellman-ford 可处理带有负权边的单源最短路径 * 算法思想: * 自底向上的方式计算最短路径 * 第i次遍历得到距源点最多i条边的最短路径 * 由于对于一个|V|个顶点的图的最短路径最多只可能经过|V-1|条边 * 所以循环次数最多为|V-1|次 * 阅读全文
posted @ 2019-07-08 21:40 Bankarian 阅读(363) 评论(0) 推荐(0) 编辑
摘要: DIJKSTRA 注意Dijkstra不能处理带负权的图,若带负权请使用spfa外加判断各点入队的次数。以下的描述都是基于图中的边无负权。 Dijkstra简述 dij是基于贪心的一种求解单源最短路径的算法,效率非常高。贪心算法的求解是来源于最优子结构的性质,从局部最优逐渐构造到全局最优。 最优子结 阅读全文
posted @ 2019-07-07 19:20 Bankarian 阅读(271) 评论(0) 推荐(0) 编辑
摘要: 差不多就要CCF考试了,弱鸡我还是挺慌的(好想上400分保研~),最近开始来逐渐巩固自己所储备的知识。 CCF的第四题往往是图论,今天就来回顾一下经典的最小生成树算法:Kruskal && Prim。 Kruskal: 遍历边,边的累加生成树--适用于边较稀疏的情况。 边用结构体数组存储,属性有:两 阅读全文
posted @ 2019-07-06 22:11 Bankarian 阅读(246) 评论(0) 推荐(0) 编辑
摘要: 只是谈谈我今日所学,啊,昨日舍友打游戏弄得我睡不好,今天学的迷迷糊糊,若有不当之处望指正。 SPFA: 单源最短路径的非常高效的方法,且可以处理带有负权的边。 @para dis[] 用来记录到目标点的预估值:初始时为Inf(无穷大),只有dis[target] = 0; 用队列来保存优化的节点,( 阅读全文
posted @ 2019-07-06 17:05 Bankarian 阅读(246) 评论(0) 推荐(0) 编辑
摘要: 1)存数数组:存储大数一般考虑从最低位开始存起,即位数越高,所在位置越后。数组0位用来存小数点后一位,需要时可以方便判断四舍五入。 2)multi乘法:模拟乘法,从最低位开始乘,利用临时变量存储进位。该位先存进位再取模。 3)divis除法:模拟除法,从最高位开始除,余数*10加到下一位。若要考虑最 阅读全文
posted @ 2019-06-19 22:20 Bankarian 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 对于状态可以一次性遍历而确定的类型--推荐使用记忆化搜索,一般额外用一个数组(f[], f[][])来记录当前位置的状态。最近做了好几道记忆化搜索题\dp题,先挂上来一道觉得较典型的记录下学习的轨迹。原题:食物链~ 大量数据输入--快读优化; 复习了一下链式向前星存图: 1)head[point]可 阅读全文
posted @ 2019-06-19 11:57 Bankarian 阅读(603) 评论(0) 推荐(0) 编辑