算法
猫小乐_
成为自己的太阳,无需凭借谁的光。
展开
-
贪心算法之最小生成树Prime C++实现
问题描述】Prim算法解决的是带权重的无向图上连接所有顶点的耗费最小的生成树。Q使用最小堆数据结构。【输入形式】在屏幕上输入顶点个数和连接顶点间的边的权矩阵。【输出形式】顺序输出按照贪心选择得到的各顶点序号,及该顶点的前驱顶点序号,及路径长度。【样例1输入】80 15 7 0 0 0 0 1015 0 0 0 0 0 0 07 0 0 9 12 5 0 00 0 9 0 0 0 0 00 0 12 0 0 6 0 00 0 5 0 6 0 14 80 0 0 0 0 14 0 310原创 2021-05-27 21:14:54 · 630 阅读 · 2 评论 -
算法设计与分析之线性时间内寻找元素(递归与分治)C++
【问题描述】每次都是优化选出一个元素(分组后的中位数)为划分基准,在线性时间内寻找第i小元素。提示:分组时的组的个数为n/5的向下取整;分组后的中位数取第(num_group/2向上取整)小的元素。【输入形式】在屏幕上输入若干整数,各数间都以一个空格分隔。再输入要寻找的元素是数组从小到大顺序中第几个位置。【输出形式】输出第一次划分找到的基准元素以及数组从小到大顺序中要寻找的那个位置的元素。【样例输入】2 9 8 0 7 10 1 12 3 14 5 13 6 11 43【样例输出】72【样原创 2021-05-21 11:59:23 · 465 阅读 · 0 评论 -
算法设计与分析之使用动态规划算法解凸多边形最优三角剖分问题C++
【问题描述】使用动态规划算法解凸多边形最优三角剖分问题,具体来说就是,依据递归式,按照顺序求得子问题,使得该三角剖分中诸三角形上权之和为最小。【输入形式】在屏幕上输入凸多边形顶点个数和顶点坐标。【输出形式】最优三角剖分后的三角形顶点。【样例1输入】78 260 200 1010 022 1227 2115 26【样例2输出】012234024456046【样例说明】输入:顶点个数为7,每一行为一个顶点坐标(x, y),以空格分隔。输出:每一行为顺序产生的最优三角剖分后原创 2021-05-21 11:51:42 · 884 阅读 · 0 评论 -
算法设计与分析之最大子段和问题(动态规划与递归分治)
【问题描述】使用动态规划或递归分治算法解最大子段和问题,具体来说就是,依据递归式,按照顺序求得子问题。【输入形式】在屏幕上输入一个序列元素,包含负整数、0和正整数。【输出形式】序列的最大子段和,及得到最大子段和时的起始和终止编号。【样例输入】-2 11 -4 13 -5 -2【样例输出】2024【样例说明】输入:6个数,元素间以空格分隔。输出:序列的最大子段和20,得到最大子段和时的起始编号为2,终止编号为4。【评分标准】根据输入得到准确的输出。【动态规划】#最大子段和 动态规划原创 2021-05-21 11:47:49 · 969 阅读 · 0 评论 -
算法设计与分析 最长公共子序列(动态规划)Python实现
【问题描述】使用动态规划算法解最长公共子序列问题,具体来说就是,依据其递归式自底向上的方式依次计算得到每个子问题的最优值。【输入形式】在屏幕上输入两个序列X和Y,序列各元素数间都以一个空格分隔。【输出形式】序列Xi = {x1, …, xi}和序列Yj = {y1, …, yj}的最长公共子序列的长度。序列X和Y的其中一个最长公共子序列,也就是当序列X和Y有多个最长公共子序列时,只输出其中的一个。这个输出的最长公共子序列选取的方法是:当xi不等于yj时,而c[i-1,j]==c[i,j-1],那么,c[原创 2021-04-30 13:11:42 · 1064 阅读 · 0 评论 -
棋盘覆盖问题Python实现
【问题描述】使用递归与分治策略解决棋盘覆盖问题【输入形式】在屏幕上输入棋盘大小及特殊方格所在行号和列号。【输出形式】输出使用L型骨牌进行棋盘覆盖结果。【样例1输入】21 2【样例1输出】2 -1 3 32 2 1 34 1 1 54 4 5 5【样例说明】输入:第一行输入整数k表示棋盘大小为2的k次幂,若k为2,则棋盘大小为4行4列;若k为3,则棋盘大小为8行8列。第二行输入特殊方格所在的行号和列号,以空格分隔,当前输入的:1 2,表示特殊方格在棋盘的第1行第2列。2&l原创 2021-04-09 20:29:19 · 2546 阅读 · 0 评论 -
LeetCode1124.表现良好的时间段
【问题描述】给你一份工作时间表 hours,上面记录着某一位员工每天的工作小时数。我们认为当员工一天中的工作小时数大于 8 小时的时候,那么这一天就是「劳累的一天」。所谓「表现良好的时间段」,意味在这段时间内,「劳累的天数」是严格 大于「不劳累的天数」。请你返回「表现良好时间段」的最大长度。【输入输出】示例 1:输入:hours = [9,9,6,0,6,6,9]输出:3解释:最长的表现良好时间段是 [9,9,6]。【题后提示】提示:1 <= hours.length <原创 2021-04-07 18:37:48 · 154 阅读 · 0 评论