算法训练
文章平均质量分 85
°PJ想做前端攻城狮
始终相信不能更进一步不是因为困难,而是畏惧困难的自己。所以想做前端攻城狮的PJ正在将键盘敲烂的路上,一直敲
展开
-
ACM模板
目录 STL 标准模版库 STL 简介STL pairSTL setSTL vectorSTL stringSTL stackSTL queueSTL mapSTL bitsetSTL iterator简介STL algorithm Number 数论 欧拉函数PHIGCD 修改 2018.6.1线性方程组(高斯消元)模线性方程(组)素数相关合数相关组合数学相关Polya计数最大1矩阵约瑟夫环...转载 2021-05-15 15:03:10 · 341 阅读 · 6 评论 -
10分钟学会最小生成树(Prim+Kruskal)
问题引入畅通工程 若要将n个城市之间原有的公路改造为高速公路,这些城市之间原有公路网如右图所示,每条边上的数字表示高速公路的改造成本(单位:10亿元)。如何以最低的成本来构建高速公路网,使得任意两个城市之间都有高速公路相连?算法概述最小生成树 Minimal Spanning Trees (MST) 任何只由图G的边构成,并包含G的所有顶点的树称为G的生成树 加权无向图G的生成树的权重是该生成树的所有边的权重之和 最小生成树是其所有生成树中权重最小的生成树 N个顶点,选取N原创 2020-05-09 09:43:18 · 2870 阅读 · 0 评论 -
10分钟带你学会并查集
引言无所不在的宗教 世界上宗教何其多。假设你对自己学校的同学总共有多少种宗教信仰很感兴趣。已知学校有n个学生,但是建议你不要直接问大家的宗教信仰,这不是一种礼貌的做法。还有另外一个方法是问m对同学,问他们是否信仰同一宗教。根据这些信息,聪明的你如何计算出学校最多有多少种宗教信仰?概述Union-Find Set一种树型数据结构,用于处理一些不相交集合(Disjoint Sets)的...原创 2020-05-08 10:37:36 · 1677 阅读 · 0 评论 -
快速了解全排列
全排列问题递归分析•用一个数组a[n]来保存1n之间的n个自然数,对于i=1n,每次用a[1]与a[i]交换后,对a[2]~a[n]中的n-1个元素进行全排列说明:大家轮流来做第1个 ,→ 循环 + 交换。确定好第1个后,对剩下的n-1个再进行全排列→递归•然后交换a[1]与a[i]的值,使它恢复到此次排列前的状态已经做过第一个了,请回到原地,轮到下一个当第一个了。确定好了第...原创 2020-04-30 21:31:21 · 1999 阅读 · 0 评论 -
N皇后问题的解法
N皇后问题在N*N的棋盘上放N个皇后,使得她们不能相互攻击。两个皇后能相互攻击当且仅当它们在同一行,或者同一列,或者同一条对角线上。找出一共有多少种放置方法。递归回溯求解n皇后问题分析:这是一个经典的回溯法程序,是用递归来实现的,其实也可以用非递归来实现。回溯法并不是必须用递归来实现的。关于冲突,行冲突肯定是不存在的,主要是判断列冲突和斜线冲突。列冲突,只要满足 queenPos[j...原创 2020-04-30 13:48:27 · 2187 阅读 · 0 评论 -
汉诺塔(hanoi)问题
汉诺塔(hanoi)问题古代有一个梵塔,塔内有三个座A、B、C,A座上有64个盘子,盘子大小 不等,大的在下,小的在上(如图)。有一个和尚想把这64个盘子从A座移 到C座,但每次只能允许移动一个盘子,并且在移动过程中,3个座上的盘子 始终保持大盘在下,小盘在上。在移动过程中可以利用B座,要求输出移动 的步骤。思路:这里我们先把上方的63个盘子看成整体,这下就等于只有两个盘子,自然很容...原创 2020-04-30 10:17:13 · 2937 阅读 · 0 评论 -
ACM算法训练
看完人家的博客,发现任重道远。。。一位高手对我的建议:一般要做到50行以内的程序不用调试、100行以内的二分钟内调试成功.acm主要是考算法的,主要时间是花在思考算法上,不是花在写程序与debug上。下面给个计划你练练:第一阶段:练经典常用算法,下面的每个算法给我打上十到二十遍,同时自己精简代码,因为太常用,所以要练到写时不用想,10-15分钟内打完,甚至关掉显示器都可以把程序打出来....转载 2019-09-14 13:38:11 · 4718 阅读 · 2 评论