自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 问答 (1)
  • 收藏
  • 关注

原创 【最短路径】算法7-15:迪杰斯特拉最短路径算法

题目描述 在带权有向图G中,给定一个源点v,求从v到G中的其余各顶点的最短路径问题,叫做单源点的最短路径问题。 在常用的单源点最短路径算法中,迪杰斯特拉算法是最为常用的一种,是一种按照路径长度递增的次序产生最短路径的算法。 可将迪杰斯特拉算法描述如下: ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200816113221978.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,t

2020-08-16 11:36:38 683

原创 【哈夫曼树】带权路径长度WPL

题目描述 哈夫曼树,第一行输入一个数n,表示叶结点的个数。需要用这些叶结点生成哈夫曼树,根据哈夫曼树的概念,这些结点有权值,即weight,题目需要输出所有结点的值与权值的乘积之和。 输入 输入有多组数据。 每组第一行输入一个数n,接着输入n个叶节点(叶节点权值不超过100,2<=n<=1000)。 输出 输出权值。 样例输入 2 2 8 3 5 11 30 样例输出 10 62 #include <cstdio> #include <queue> usin

2020-07-26 17:29:55 1233

原创 【哈夫曼树】合并果子

题目描述 在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。多多决定把所有的果子合成一堆。每一次合并,多多可以把两堆果子合并到一起, 消耗的体力等于两堆果子的重量之和。可以看出,所有的果子经过n-1次合并之后,就只剩下一堆了。多多在合并果子时总共消耗的体力等于每次合并所耗体力之和。 因为还要花大力气把这些果子搬回家,所以多多在合并果子时要尽可能地节省体力。假定每个果子重量都为1,并且已知果子的种类数和每种果子的数目, 你的任务是设计出合并的次序方案,使多多耗费的体力最少,并

2020-07-24 15:39:28 216

原创 【二叉树】二叉树遍历/根据先序创建二叉树

题目描述 编一个程序,读入用户输入的一串先序遍历字符串,根据此字符串建立一个二叉树(以指针方式存储)。例如如下的先序遍历字符串: ABC##DE#G##F###其中“#”表示的是空格,空格字符代表空树。建立起此二叉树以后,再对二叉树进行中序遍历,输出遍历结 输入 输入包括1行字符串,长度不超过100。 输出 可能有多组测试数据,对于每组数据,输出将输入字符串建立二叉树后中序遍历的序列,每个字符后面都有一个空格。每个输出结果占一行。 样例输入 a#b#cdef##### a## 样例输出 a b f

2020-06-19 22:23:41 1794

原创 【二叉树】二叉树

题目描述 如上所示,由正整数1,2,3……组成了一颗特殊二叉树。我们已知这个二叉树的最后一个结点是n。现在的问题是,结点m所在的子树中一共包括多少个结点。 比如,n = 12,m = 3那么上图中的结点13,14,15以及后面的结点都是不存在的,结点m所在子树中包括的结点有3,6,7,12,因此结点m的所在子树中共有4个结点。 输入 输入数据包括多行,每行给出一组测试数据,包括两个整数m,n (1 <= m <= n <= 1000000000)。最后一组测试数据中包括两个0,表示输入

2020-06-17 23:43:02 282

原创 【二叉树】复原二叉树

题目描述 小明在做数据结构的作业,其中一题是给你一棵二叉树的前序遍历和中序遍历结果,要求你写出这棵二叉树的后序遍历结果。 输入 输入包含多组测试数据。每组输入包含两个字符串,分别表示二叉树的前序遍历和中序遍历结果。每个字符串由不重复的大写字母组成。 输出 对于每组输入,输出对应的二叉树的后续遍历结果。 样例输入 DBACEGF ABCDEFG BCAD CBAD 样例输出 CBFGED CDAB 在这里插入代码片 ...

2020-06-17 23:37:31 418

原创 【二叉树】通过后序中序求层序

题目 给出一棵二叉树的后序遍历和中序遍历,求这棵二叉树的层序遍历序列。 输入 7 2 3 1 5 7 6 4 1 2 3 4 5 6 7 输出 4 1 6 3 5 7 2 代码 #include <cstdio> #include <queue> using namespace std; const int maxn = 100; int pro[maxn],in[maxn]; //pro后序,in中序 int n; //结点个数 struct Node{ int d

2020-06-06 11:16:06 452

原创 【BFS】走迷宫求步数

题目 给定一个m*n大小的迷宫,其中 * 代表不可通过的墙壁,“.”代表平地,S表示起点,T表示终点。 移动过程中,只能前往上下左右四个位置的平地,求从起点S到终点T的最少步数。 输入 5 5 ..... .*.*. .*S*. .***. ...T* 2 2 4 3 输出 11 #include <cstdio> #include <queue> using namespace std; const int maxn = 100; char matrix[maxn][ma

2020-05-30 13:04:36 493

原创 【BFS】求“块”的个数

题目 给出一个m*n的矩阵,矩阵中元素为0或1。称位置(x,y)与其上下左右资格位置是相邻的。 如果矩阵中有若干个1是相邻的,则称这些1构成了一个“块”,求给定矩阵中块的个数。 输入 6 7 0 1 1 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 1 0 1 1 1 0 1 0 0 1 1 1 1 0 0 0 输出 4 #include <cstdio> #include <queue> using namespace std

2020-05-29 19:19:17 244

原创 【递归入门】出栈序列统计

题目描述 栈是常用的一种数据结构,有n令元素在栈顶端一侧等待进栈,栈顶端另一侧是出栈序列。 你已经知道栈的操作有两•种:push和pop,前者是将一个元素进栈,后者是将栈顶元素弹出。 现在要使用这两种操作,由一个操作序列可以得到一系列的输出序列。 请你编程求出对于给定的n,计算并输出由操作数序列1,2,…,n,经过一系列操作可能得到的输出序列总数。 输入 整数n(1<=n<=15) 输出 一个整数,即可能输出序列的总数目。 样例输入 3 样例输出 5 提示

2020-05-29 17:37:53 484

原创 【递归入门】n皇后 问题

题目描述 会下国际象棋的人都很清楚:皇后可以在横、竖、斜线上不限步数地吃掉其他棋子。 如何将8个皇后放在棋盘上(有8 * 8个方格),使它们谁也不能被吃掉!这就是著名的八皇后问题。 输入 一个整数n( 1 < = n < = 10 ) 输出 每行输出对应一种方案,按字典序输出所有方案。每种方案顺序输出皇后所在的列号,相邻两数之间用空格隔开。 如果一组可行方案都没有,输出“no solute!” 样例输入 4 样例输出 2 4 1 3 3 1 4 2 #inc

2020-05-29 17:26:52 541

原创 【递归入门】组合+判断素数

【递归入门】组合+判断素数 题目描述 已知 n 个整数b1,b2,…,bn以及一个整数 k(k<n)。从 n 个整数中任选 k 个整数相加,可分别得到一系列的和。例如当 n=4,k=3,4 个整数分别为 3,7,12,19 时,可得全部的组合与它们的和为:3+7+12=22  3+7+19=29  7+12+19=38  3+12+19=34。现在,要求你计算出和为素数共有多少种。例如上例,只有一种的和为素数:3+7+19=29。 输入 第一行两个整数:n , k (1<=n<=20,k<n

2020-05-25 23:04:36 439

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除