![](https://img-blog.csdnimg.cn/20210623201340865.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据结构与算法
文章平均质量分 75
一些OJ/算法题平台的题解
m0_52733659
这个作者很懒,什么都没留下…
展开
-
【数据结构】败者树的建树与比较过程
显然,要选出最小值,只要比较 x 和 y 即可,若 x < y,那么 x 就是 A 和 B 中最小的,y 比 A 中的哪些元素小,我们并不关心。编号 1 对应的归并段没有元素了,那么输出 5,并移除 5 对应的子树,移除后的败者树被破坏了。,假设根节点为 0 和 1 对应子树进行比较,取出根节点对应的值,5 < 17,5 胜出。比较根节点为 3 和 4 对应子树,取出根节点对应的值,15 < 29,15 胜出。,15 是 4 号节点。为每个节点创建一个根节点,根节点的值是其编号,叶子节点是值。原创 2023-11-02 20:59:52 · 748 阅读 · 0 评论 -
【数据结构】2015统考真题 6
【2015统考真题】求下面的带权图的最小(代价)生成树时,可能是Kruskal算法第2次选中但。Prim算法(从v4开始)原创 2023-09-02 18:30:51 · 523 阅读 · 0 评论 -
【数据结构】十字链表的画法
有向边又称为弧假设顶点 v 指向 w,那么 w 称为弧头,v 称为弧尾顶点节点采用顺序存储顶点节点弧节点。原创 2023-08-29 14:34:49 · 1673 阅读 · 2 评论 -
DFS与BFS寻找图中的所有路径(C++)
【代码】DFS与BFS寻找图中的所有路径(C++)原创 2023-04-11 20:51:46 · 1739 阅读 · 1 评论 -
CSP202206-2 寻宝!大冒险!
题目保证藏宝图的左下角必定是树,因此可以从绿化图中的每一个树进行模拟,若该点。模拟时,首先取得绿化图中树的坐标,在该坐标的基础上进行运算。),其中绿化图很大(二维数组在限定的空间内无法存储),而。藏宝图的输入比较特殊,是从左上角开始输入,直到右下角。还需要注意,模拟时要保证面积与藏宝图一致,不能越界。即:藏宝图是绿化图的一部分,符合题意的点,与藏宝图完全一致,说明该点符合题意,对于绿化图和藏宝图,左下角的坐标为。来表示藏宝图,保存时,从。函数的实现,可以使用。,这是第一行,第二行从。原创 2023-03-12 18:48:22 · 632 阅读 · 1 评论 -
力扣 1001. 网格照明 (Python/C++)
文章目录题目题意分析gridlampsqueries思路暴力解法代码哈希表代码(哈希表)C++PythonPython3题目题目链接:1001.网格照明题意分析gridgrid是一个灯泡矩阵,矩阵的大小是 n x nlampslamps数组会给到一些点亮的灯泡坐标每一个点亮的灯泡会照亮(上下左右,对角线,反对角线)上的灯泡。queriesqueries数组中有一些坐标,希望知道该坐标的灯泡是否是亮的(无论是点亮还是照亮都算亮)查询操作:如果查询到的坐标的灯泡是亮的 返原创 2022-02-08 20:52:32 · 977 阅读 · 0 评论 -
力扣 1696. 跳跃游戏 VI(c++)
1696. 跳跃游戏 VI - 力扣(LeetCode) (leetcode-cn.com)结果题意从数组中从左到右选取数字,下标为0和下标为n-1的为必选。从你上一次选的位置往后选k个数字中的某一个。第一次的上一次是? 因为0为必选,所以第一次选下标为1~k的数字。解析因为要求得分最大,所以每一步我们都希望是当前最大的,这样到终点才能是最大得分。当前的分数 = 之前的分数 + 数组该位置的数值数组该位置的数值是无法改变的,所以要让当前的分数最大,就要让之前的分数最大,也就是选取前K个得原创 2022-02-04 00:20:05 · 2941 阅读 · 0 评论 -
前缀和(一维、二维)c++实现
文章目录一维前缀和是什么?有什么用?怎么用?代码实现二维前缀和是什么?有什么用?怎么用?代码实现代码实现中我使用的头文件是<bits/stdc++.h>,如果运行不成功请注意更换。一维前缀和是什么?一个数组中,从【第一个元素】到【当前元素】的【数值和】,通常简写为preSum有什么用?能够快速查询一个数组中[L,R]范围内的【数值和】。怎么用?根据前缀和的定义,preSum[index]就是从数组在[0,index]范围上的【数值和】。preSum[R] =原创 2021-11-17 21:06:51 · 867 阅读 · 0 评论 -
前缀和的应用(leetcode 303区域和检索 - 数组不可变)超详细
给定一个整数数组 nums,求出数组从索引i到j(i≤j)范围内元素的总和,包含i、j两点。实现 NumArray 类:NumArray(int[] nums) 使用数组 nums 初始化对象int sumRange(int i, int j) 返回数组 nums 从索引i到j(i≤j)范围内元素的总和,包含i、j两点(也就是 sum(nums[i], nums[i + 1], ... , nums[j]))原创 2021-10-11 16:27:09 · 172 阅读 · 0 评论 -
C/C++ 光标:键盘上下键实现菜单移动
C/C++ 光标管理系统使用键盘上下键来控制菜单原创 2021-07-29 00:51:21 · 6666 阅读 · 5 评论 -
编写程序,用于进行集合的并、差和交运算。
C++实现集合的交、并、差运算原创 2021-04-23 17:36:24 · 5230 阅读 · 0 评论 -
厦门理工第二届程序设计大赛 正确的IP
Description//描述在网络课程上,我学到了很多有关IP的知识。IP全称叫网际协议,有时我们又用IP来指代我们的IP网络地址,现在IPV4下用一个32位无符号整数来表示,一般用点分方式来显示,点将IP地址分成4个部分,每个部分为8位,表示成一个无符号整数(因此不需要用正号出现),如172.16.163.66(每个部分的范围是0-255)是我们非常熟悉的IP地址,一个IP地址串中没有空格出现(因为要表示成一个32位数字)。,但是粗心的我,常常将IP地址写错,现在需要你用程序来判断。Input//原创 2021-04-17 16:28:58 · 162 阅读 · 0 评论 -
厦门理工OJ 1271--技术流
1271-技术流题目描述Description小明是一个股民,他最看不起身边那些靠听消息炒股的股民。他自诩自己是技术流,是靠分析股市中的技术指标实现财富的保值增值。小明前两周已经学完了K线图和MACD指标,这几天他在主攻HH-Index( historically highest )指数,表示在最近K天内( 包含该天 ),本日股价是最高的,而在最近K+1天内,它就不是最高的。举例,某支股票的价格走势如图。题目限制Time Limit:1000MS Memory Limit:65536K输入原创 2021-04-23 18:47:10 · 170 阅读 · 0 评论 -
厦门理工OJ1266--谁是冠军
1266--谁是冠军通过类实现对选手信息的维护原创 2021-04-24 10:27:39 · 295 阅读 · 0 评论 -
1228--八目鳗烧烤店
1228–八目鳗烧烤店题目描述Description八目鳗烧烤店一共有6个八目鳗,幽幽子一口能吃1到6个八目鳗,求吃完所有的八目鳗共有多少种吃法。任意一口吃的八目鳗数量不同,就算不同的吃法。本题无输入输出案例Input无Output输出一个整数,表示吃完所有的八目鳗共有多少种吃法。不要书写任何多余的内容(例如:添加说明文字等)。思路如果是要解开这道题的话其实自己手算然后用cout或者是printf输出答案就行了,答案是32。总共的吃法也就是前面的吃法+1,没什么难度原创 2021-04-24 11:04:39 · 649 阅读 · 0 评论 -
UVA-725
UVA-725题目描述:输入一个正整数n(2<=n<=79),按照从小到大的顺序输出所有形如abcdefg/fghij = n的表达式,其中a~j 恰好为数字 0~9 的一个排列(可以有前导0)2.Sample Input:623.Sample Output:79546/01283 = 62 94736/01528 = 62思路这道题的思路并不难,主要就是通过 暴力枚举 的方法其实需要枚举的数经过我们的设定,完全可以控制在1e8内,可以说是绰绰有余这道题的原创 2021-05-16 18:32:26 · 238 阅读 · 0 评论 -
单链表的基本操作
单链表链表的结构分为数据域和指针域struct Node{ int date; Node* nxt;};链表的功能//1.头插法void creatListF(Node* l, int* a, int n);//2.尾插法void creatListT(Node* l, int* a, int n);//3.遍历void travelList(Node* l);//4.插入结点int searchElem(Node* l, int e);//5.修改结点voi原创 2021-05-17 17:16:39 · 119 阅读 · 0 评论 -
力扣 链表707.设计链表
题目介绍设计链表的实现。您可以选择使用单链表或双链表。单链表中的节点应该具有两个属性:val 和 next。val 是当前节点的值,next 是指向下一个节点的指针/引用。如果要使用双向链表,则还需要一个属性 prev 以指示链表中的上一个节点。假设链表中的所有节点都是 0-index 的。这里我采用单链表的方式。在链表类中实现这些功能:get(index):获取链表中第 index 个节点的值。如果索引无效,则返回-1。addAtHead(val):在链表的第一个元素之前添加原创 2021-05-18 14:30:56 · 135 阅读 · 0 评论