- 博客(6)
- 收藏
- 关注
原创 最小生成树_kruskal(贪心算法)
首先复习以下最小生成树的相关概念:生成树:一个图中可能存在多条相连的边,我们一定可以从一个图中挑出一些边生成一棵树。最小生成树:当图中每条边都存在权重时,这时候我们从图中生成一棵树(n - 1 条边)时,生成这棵树的总代价就是每条边的权重相加之和。Kruskal算法是求解图中最小生成树的一个经典算法。算法思路如下:1、寻找图中权重最小的边加入到最小生成树中,并将该边从图中删去;2、若加入该边后生成树中构成了回路,则放弃该边,回到步骤1;
2023-05-30 08:55:36
1348
1
原创 解决VSCode中控制台中文乱码的情况
中文乱码的话一般都是字符编码选择的问题,很多时候默认编码是UTF-8,这就会导致我们的中文出现乱码,这就需要我们自行修改字符编码。随便打开一个cpp文件(已经打开的话需要关闭重新打开),可以看到右下角显示GB 2312,说明字符编码已经修改成功了;展开更多选项,可以看到UTF-8是默认的,我们找到选择Simplified Chinese(GB 2312);刚用VSCode写C++代码不久,今天写的程序中输出有中文,然后终端显示中文就出现了乱码的情况。点击左下角的设置选项(小齿轮),打开设置;
2023-04-24 19:57:22
2045
原创 (C++)整数划分问题(递归分治)
整数划分问题:求正整数n的不同的划分个数,以及所有划分。确定完n1后,剩下的问题就相当于找到 min{m-n1 , n1} 的所有划分,这时候递归的方法就已经很明显了。按照定的规则输出结果,每行输出的一个划分,要满足条件n1 ≥ n2 ≥ …≥ nk ≥ 1,k ≥ 1,并且大的正整数n1,n2,…由于要先输出总共的划分数num,我们可以利用二维数组或者vector容器来记录每一次找到的划分,在算法结束之后进行输出。(n1≥n2≥n3…第一行输出正整数n的不同的划分个数,后续行每行输出其中一个划分。
2023-04-21 11:26:42
1132
1
原创 (C++实现)优先队列搜索算法求解TSP问题(搜索算法)
采用优先队列搜索算法求解TSP问题,用一最小堆来存储活结点表,其优先级是结点的当前费用。并在搜索过程中,使用界限条件(当前结点已经走过的路径长度要小于已求得的最短路径)进行“剪枝”操作(不再对后续结点进行遍历),从而提高搜索效率。
2023-04-20 16:56:45
477
1
原创 (C++实现)深度优先搜索算法求解TSP问题(搜索算法)
采用深度优先搜索算法求解TSP问题,并在搜索过程中,使用界限条件(当前结点已经走过的路径长度要小于已求得的最短路径)进行“剪枝”操作(不再对后续结点进行遍历),从而提高搜索效率。输入:顶点个数为4。连接顶点间边的邻接矩阵大小为4行4列,位置[i,j]上元素值表示第i个顶点到第j个顶点的距离,0表示两个顶点间没有边连接。在整个算法过程中的先后搜索路径(最多输出20次最先搜索的路径),最优值和其中一条最优路径。输出:在整个算法过程中的先后搜索路径,最优值为25,最优路径为:1->3->2->4。
2023-04-20 16:52:25
300
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人