自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 收藏
  • 关注

原创 单链表原地逆转

【代码】单链表原地逆转。

2024-04-09 11:14:25 72

原创 单链表按位序删除节点

【代码】单链表按位序删除节点。

2024-04-09 10:33:58 104

原创 后插法建立单链表

本文描写了如何运用后插法创建单链表

2024-04-08 22:02:19 120

原创 前插法逆置单链表

【代码】前插法逆置单链表。

2024-04-08 21:21:37 363

原创 两个字符串最长公共子序列(动态规划)

最长公共子序列(Longest Common Subsequence,简称LCS)是指在两个序列中能够找到的最长的子序列,该子序列在原序列中的相对顺序保持不变,但不要求连续。换句话说,最长公共子序列是通过从两个序列中删除若干元素而形成的相同的元素序列,但是这些元素在原序列中的相对顺序保持不变。初始化边界条件:将第一行和第一列的所有元素设置为0,表示当一个序列的长度为0时,最长公共子序列的长度为0。数组的值和元素是否相等进行判断,逐步向左上方移动,将匹配的元素添加到最长公共子序列中。个元素与第二个序列的第。

2023-12-21 13:57:19 349

原创 最优二叉搜索树算法(动态规划)

如果要删除的节点有两个子节点,可以选择用其左子树中的最大节点或右子树中的最小节点来替换删除节点,并删除相应的替换节点。对于二叉搜索树中的任意节点,其左子树中的节点值都小于该节点的值,右子树中的节点值都大于该节点的值。这意味着对于任意节点,其左子树中的值都小于该节点的值,右子树中的值都大于该节点的值。换句话说,对于二叉搜索树中的任意子树,其左子树中的节点值都小于根节点的值,右子树中的节点值都大于根节点的值。构建最优二叉搜索树:根据填表得到的dp数组,可以通过追踪选择的根节点来构建最优二叉搜索树。

2023-12-21 12:35:34 456

原创 算法设计与分析课后题5.4(动态规划、背包)

有一个载重为10的背包,现有4类物品,每类物品的重量分别为(w0,w1,w2,w3)=(2,3,4,7),它们的价值分别为(p0,p1,p2,p3)=(1,3,5,9)。试问如何装载能够使背包容纳物品的价值最大。

2023-12-20 15:09:36 99 1

原创 最小生成树(Kruskal)

【代码】最小生成树(Kruskal)

2023-12-01 14:48:01 89 1

原创 最小生成树(Prim)

接下来 M 行每行包含三个整数 Xi​,Yi​,Zi​,表示有一条长度为 Zi​ 的无向边连接结点 Xi​,Yi​。如果该图连通,则输出一个整数表示最小生成树的各边的长度之和。如果该图不连通则输出。第一行包含两个整数N,M,表示该图共有 N 个结点和 M 条无向边。如题,给出一个无向图,求出最小生成树,如果该图不连通,则输出。

2023-12-01 14:45:02 86 2

原创 并查集(模板)

如题,现在有一个并查集,你需要完成合并和查询操作。

2023-11-30 20:25:17 57 1

原创 最优服务次序问题(贪心,简单)

设有n个顾客同时等待一项服务。顾客i需要的服务时间为t,1≤i ≤n。应如何安排n个顾客的服务次序使得总的等待时间达到最小?总的等待时间是每个顾客等待服务时间的总和。既然要求总的等待时间最小,很容易想到让顾客需要服务时间少的顾客先享受服务就可以了,我们对时间排序就好了。

2023-11-30 19:50:12 49 1

原创 01背包问题(动态规划,简单)

解题思路:我们需要收益最大,所以收益高的物品要优先装入背包吗?显然不是的,背包的容量是固定的,我们不能无限次的装。当我们把较小体积和较大收益的物品装入背包时,可得到最大收益,问题是我们要怎么装呢。设有背包问题物品n个,背包总容量为sum,每个物品重量为wi,物品装入背包的收益为pi。输入n,sum,每个物品重量和收益,求出最大收益。

2023-11-30 16:09:26 494 1

原创 goto语句

但这对程序的模块化开发是相悖的,所以在平时开发中我们大都使用java语言,它是封装好的,模块化的一种开发语音。便于我们管理和调试,但对于底层系统对速度要求较高的,就需要使用c了。goto语句是一种无条件转移语句,被广泛应用于c语言中,它能从程序的任意地方转移到程序的任意地方,这无疑提高了代码的灵活度。总得来说,我们很少使用goto语句,它太“灵活”了。

2023-11-28 15:57:00 22 1

原创 单源最短路径(dijkstra)

有n个点,m条边,接下来有m条数据,每条数据包含u,v,w,表示用u到v的距离为w,求从1到n的最短路径是多少。3,我们要循环n次,在循环的每一次都要找到距离点1最小的点,在这个最小的点的基础上,更新所有点的距离。1,初始化,我们把每个点到点1的距离都初始化为无穷大。2,把点1距离它自己的距离设为0,dis[1]=0。4,dis[n]即为本题的答案。

2023-11-26 15:13:42 80 1

原创 归并排序,简单

给定n个数,把这n个数按从小到大的顺序排列。2,递归对前半个子序列进行归并排序。3,对后半个子序列进行归并排序。4,归并排序好的两个子序列。

2023-11-22 15:38:11 41 2

原创 硬币问题,洛谷

当n>=11,我们有11元面值的硬币,那么当前n元所需要的最小硬币数量,就是n-11元所需要的硬币数量+1,dp[n]=min(dp[n],dp[n-11]+1)当n>=5,我们有5元面值的硬币,那么当前n元所需要的最小硬币数量,就是n-5元所需要的硬币数量+1,dp[n]=min(dp[n],dp[n-5]+1)很明显,这是一道动态规划问题,我们要特别注意1、5、11这三个数值,不妨这样想,当n

2023-11-22 14:52:24 314 1

原创 平面最近点对,分治

传输门P1429 平面最近点对(加强版) - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

2023-11-17 23:24:08 98 2

原创 如何理解快速排序

二,把小于base的值移到base左边。三,把大于base的值移到base右边。一,选择一个基准base。

2023-11-08 16:15:30 43 1

原创 八皇后问题(简单)

对于八皇后问题,我们可以先假设三个数组c[], l[], il[]。其中c[]表示纵坐标数组,l[]表示左对角线,il[]表示右对角线。应为我们就是横向开始遍历的,所以不用定义横向数组了。如图所示,我们可以发现左对角线的所有点的i - j都相等,右对角线的所有点的i + j都相等,不行的话可以试试,上代码。

2023-09-27 15:53:51 51 1

原创 【NOIP2003PJ】栈 题解报告

栈是计算机中经典的数据结构,简单的说,栈就是限制在一端进行插入删除操作的线性表。栈有两种最重要的操作,即 pop(从栈顶弹出一个元素)和 push(将一个元素进栈)。栈的重要性不言自明,任何一门数据结构的课程都会介绍栈。宁宁同学在复习栈的基本概念时,想到了一个书上没有讲过的问题,而他自己无法给出答案,所以需要你的帮忙。宁宁考虑的是这样一个问题:一个操作数序列,从 1,2,一直到 n,栈 A 的深度大于 n。

2023-09-14 11:19:55 42

原创 2021-10-14学c

c语言第一天,加油

2021-10-14 10:29:39 51

空空如也

空空如也

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

TA关注的人

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