自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(5)
  • 问答 (3)
  • 收藏
  • 关注

原创 公路村村通(浙大PTA数据结构与算法题目集-编程题7-10)

(扯句题外话,假设最开始没有这个算法的时候,我想大多数人拿到一个图要找最小生成树,可能想到的都是做“减法”,也就是怎么在众多的边当中删繁就简去掉冗余的权值大的边,只剩下权值小的边。其实直观上、感性上很好理解这个算法为什么得到的就是MST,每次连通一个点,而且每次还选的是边权最小的顶点,当所有顶点连通时必然是一个最小生成树。和Dijkstra一样,采用的是贪心策略。第一个点是这里的数组d[],虽然Prim算法看起来和Dijkstra有十分甚至九分相像,但这个d[]的作用差的很大,Prim的d[]存放的是到。

2024-06-06 23:28:41 902

原创 哈利·波特的考试(浙大PTA数据结构与算法题目集-编程题7-8)

现在哈利·波特的手里有一本教材,里面列出了所有的变形魔咒和能变的动物。随后M行,每行给出了3个正整数,分别是两种动物的编号、以及它们之间变形需要的魔咒的长度(≤100),数字之间用空格分隔。很显然要用Dijkstra算法,分别算出以每个顶点为起点时该顶点到其他顶点的最短路径,找出其中的最大值(也就是需要的魔咒最长),比较这些最大值,选择其中最小的那个,输出起点和路径长。比较重要的信息:考察的是“从某个动物变成任意一种动物的能力”,那大概题目要求的算法也和则个有联系:即从某个“东西”出发,能够“到达”

2024-06-01 21:54:43 609

原创 堆中的路径(浙大PTA数据结构与算法题目集-编程题7-5)

每组测试第 1 行包含 2 个正整数 n 和 m (≤103),分别是插入元素的个数、以及需要打印的路径条数。下一行给出区间 [−104,104] 内的 n 个要被插入一个初始为空的小顶堆的整数。最后一行给出 m 个下标。找路径输出就比较简单了,由完全二叉树性质:父节点位序=孩子结点位序/2(向下取整),根据给出的要输出路径结点下标,每次除以2直到下标为1即可。对输入中给出的每个下标 i,在一行中输出从第 i 个结点到根结点的路径上的数据。随后对任意给定的下标 i,打印从第 i 个结点到根结点的路径。

2024-06-01 21:11:19 395

原创 两个有序链表序列的合并(浙大PTA数据结构与算法题目集-编程题7-51)

当tmp≤cur的时候,表明当前遍历过的结点都不大于新链表最大值,当tmp>cur,即pre

2024-05-11 16:22:09 428

原创 两个有序链表的交集(浙大PTA数据结构与算法题目集-编程题7-52)

在遍历链表的时候,如果两个链表的元素值相等,则将该结点链接到结果链表上,并将两个链表的指针同时向后后移动,若不相等,就把较小结点所在链表直接链接在较大的结点前面,组成新的链表,并从新链表中,原先在比较时较大的那个结点开始,跟原先较小元素所在链表剩下的结点继续求交集即可。输入分两行,分别在每行给出由若干个正整数构成的非降序序列,用−1表示序列的结尾(−1不属于这个序列)。在一行中输出两个输入序列的交集序列,数字间用空格分开,结尾不能有多余空格;及之前的元素(除那些已经在交集中的元素外)必然不属于A∩B。

2024-05-09 14:19:37 245

空空如也

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

TA关注的人

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