- 博客(11)
- 收藏
- 关注
原创 图论的应用
用数组d记录每个顶点的最短路径估计值。若用 u 来松弛v,就是判断是否 d[u] + w[u][v] < d[v],特别说明: Dijkstra算法基于贪心思想,一旦某顶点被选中并加了访问标记,如果该式成立则用 d[u] + w[u][v] 更新 d[v] ,否则不变。则不再被其他顶点松弛!
2024-05-05 16:09:25
611
2
原创 搜索优化习题
CPU占用时长: 1秒内存使用限制: 128MB已知一个天平 ,有N(1<=N<=1000)个已知质量的砝码(所有砝码质量的数值都在31位二进制内)。所称物体在天平的某一边,天平另一边加砝码,直到天平平衡,于是此时砝码的总质量就是物体的质量(物体和砝码不能放到同一边)。天平能承受的物体的质量不是无限的,当天平某一边物体的质量大于C(1<=C<2^30)时,天平就会被损坏。砝码按照它们质量的大小被排成一行。
2024-04-13 11:33:22
829
1
原创 DFS深搜习题
kkksc03 的大学生活非常的颓废,平时根本不学习。但是,临近期末考试,他必须要开始抱佛脚,以求不挂科。这次期末考试,kkksc03 需要考 4科。因此要开始刷习题集,每科都有一个习题集,分别有 s1,s2,s3,s4 道题目,完成每道题目需要一些时间,可能不等(A1,A2,.....,As1,B1,B2,…,Bs2,C1,C2,…,Cs3,D1,D2,…,Ds4)。kkksc03 有一个能力,他的左右两个大脑可以同时计算 22 道不同的题目,但是仅限于同一科。
2024-03-16 11:24:32
897
1
原创 栈——后进先出的线性表
栈(stack)又叫堆栈,是一种运算受限的线性表,即只允许在表的一端进行插入和删除运算。一端称为栈顶,相对的,另一端称为栈底。向一个栈中插入新元素又称为进栈、入栈或压栈,即把新元素放到栈顶元素的上面,使之成为新的栈顶元素。从一个栈中删除元素又称为出栈或退栈、弹栈,即把栈顶元素删除掉,使其相邻元素成为新的栈顶元素。由于栈的插入和删除运算仅在栈顶一端进行,后进栈的元素必定先被删除,因而又把栈称为后进先出表(Last In First Out,缩写为LIFO)。
2024-01-13 22:34:32
1950
1
原创 链表--物理存储上非连续的线性表(习题)
新节点的 next 指针和 random 指针也都应指向复制链表中的新节点,并使原链表和复制链表中的这些指针能够表示相同的链表状态。2\sim N2∼N 号同学依次入列,编号为 ii 的同学入列方式为:老师指定编号为 ii 的同学站在编号为 1\sim(i-1)1∼(i−1) 中某位同学(即之前已经入列的同学)的左边或右边;给你一个长度为 n 的链表,每个节点包含一个额外增加的随机指针 random ,该指针可以指向链表中的任何节点或空节点。的头节点 head ,请你反转链表,并返回反转后的链表。
2023-12-16 20:52:21
867
1
原创 链表——非连续线性表
单链表和双链表的相同表现:1.无法在常量时间内随机访问数据。2.能够在 O(1) 时间内在给定结点之后或列表开头添加一个新结点。3.能够在 O(1) 时间内删除第一个结点。但是删除给定结点时略有不同。在单链表中,它无法获取给定结点的前一个结点,因此在删除给定结点之前我们必须花费 O(N) 时间来找出前一结点。在双链表中,这会更容易,因为我们可以使用“prev”引用字段获取前一个结点。因此我们可以在 O(1) 时间内删除给定结点。这里我们提供链表和其他数据结构(包括数组队列和栈)之间。
2023-12-10 19:44:54
948
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人