刷新
02-链表

博主头像 概述 链表作为 C 语言中一种基础的数据结构,在平时写程序的时候用的并不多,但在操作系统里面使用的非常多。理解链表及其在 RTOS 中的应用,这对后续深入学习 RTOS 内核机制非常重要。 一、什么是链表? 链表是一种动态数据结构,由多个「节点」通过指针连接而成。每个节点包含两部分: 数据域:存储实 ...

CF333E Summer Earnings

博主头像 推歌:Between Worlds 很有意思的题。 注意到题目其实就是选三个点使得两两之间欧几里得距离最小值最大,很容易就有 \(O(n^3)\) 做法。 常规方法是注意到本题时限极大,而最小值最大又是可以从大到小枚举最小值的,因此把所有的点对按照距离排序从大到小扫,每次就是对 \((i,j)\) ...

线性结构常见应用之栈[基于郝斌课程]

博主头像 栈的定义: 一种可以实现“先进后出”的存储结构 栈类似于箱子,先放进去的最后取出来,最后放入的先取出来 栈的分类: 静态栈的内核是数组 动态栈的内核是链表 栈的算法: 出栈 压栈 栈的应用: 函数调用 中断 表达式求值 内存分配 缓冲处理 迷宫 /* @file main.c @brief 线性结构 ...

线性结构之链表[基于郝斌课程]

博主头像 离散存储[链表]: 定义: n个结点的离散分配 彼此通过指针相连 每个结点只有一个前续结点 每个结点只有一个后续结点 首结点没有前续结点 尾结点没有后续结点 专业术语: 首结点:第一个有效结点,存放第一个有效数据 尾结点:最后一个有效结点,存放最后一个有效数据 头结点:在首结点之前的一个结点,既不存 ...

CF913G Power Substring

博主头像 推歌:SPOTLIGHT HUNTER 麦晓雯联动出了,没抽到。我爸把我 75 研究卷霍霍露娜上了导致我没法免费保底。诋毁他。 洛谷传送 说回正题。设 \(a\) 有 \(n\) 位,所求的 \(a\) 在 \(2^k\) 中距离末位的位数为 \(m\),显然 \(k\ge n+m\)。 发现很难求 ...

线性结构之数组[基于郝斌课程]

博主头像 线性结构:把所有的结点用一根线穿起来 连续存储[数组] 什么叫做数组:元素类型相同,大小相等 数组的优缺点: 优点:存取元素的效率非常高 缺点: 事先必须知道数组的长度 需要大块连续内存块 插入删除元素的效率极低 空间通常是有限制的 /* @file main.c @brief 线性结构之数组 @a ...

准备工作之动态内存分配[基于郝斌课程]

博主头像 定义一块内存可以用数组定义,也可以动态分配: 使用数组定义一块内存,则该块内存是静态的,也就是一旦定义之后,这块内存的大小就固定了,例如,数组元素个数是5,则定义后,这=这块内存大小就是5,不能再改变 但是用malloc动态分配的话,这块内存的大小就由我们自己来定义了,例如定义大小为5的内存块,使用 ...

CSP-S 2025 #1

博主头像 个人感觉比之前的简单了不少。个人估分 97~100。题面 link 然后说一下这次问题比较明显的几个题。 一个是第一篇阅读程序的第二道判断题,由于 \(n\) 的输入限制仅有“不溢出”这一条,所以可以取 \(n<0\),此时任意的 \(k\) 都不满足 \(1\le k\le n+1\)。不过我认为 ...

P7435 简单的排列计数

博主头像 推歌:Terrasphere 传送 首先没推过很多大式子的看到题面会晕,不过没事我们可以它翻译成可读题面。 对于一个排列 \({\pi_n}\),定义其一个逆序对为 \(1\le i<j\le n\) 且 \(\pi_i>\pi_j\) 的二元组 \((i,j)\),逆序对 \((i,j)\) 的权 ...

学习笔记:操作分块 / 根号重构

博主头像 感谢校内模拟赛给我强行灌输了这个东西。。。 概述 操作分块 / 根号重构,又名时间轴分块,是一种用于解决多次修改和查询问题的高效算法,这类问题一般的特征: 难以 polylog; 暴力简单; 可以通过处理前面的修改,较快贡献后面的询问; 借鉴序列分块的思想,我们设定一个阈值 \(B\),将连续 \( ...

ABC310E NAND repeatedly 题解

博主头像 https://atcoder.jp/contests/abc310/tasks/abc310_e 一个奇怪的递归式 + \(N \le 10^6\), 试试动态规划 设 \(dp_{i,j}\) 为对于所有 \(1 \le l \le i\) 满足 \(f(l, i)=j\) 的数量, 其中 \( ...

仓储物流业务字段(一)

以下是整理的100个仓储物流数据库常用字段名,分类归纳如下: 基础信息类 仓库编码(warehouse_code) 仓库名称(warehouse_name) 仓库地址(warehouse_address) 仓库类型(warehouse_type) 负责人(manager) 容量(capacity) ...

经典面试题目:二叉树遍历

博主头像 一、 核心定义与性质 二叉树(Binary Tree) 是一种每个节点最多有两个子节点的树形结构。这两个子节点通常被称为左子节点和右子节点。 关键术语: 根节点(Root): 树的顶层节点,没有父节点。 叶子节点(Leaf): 没有子节点的节点。 深度(Depth): 从根节点到该节点所经历的边的个 ...

准备工作之结构体[基于郝斌课程]

博主头像 为什么会出现结构体 为了表示一些复杂的数据,而普通的基本类型变量无法满足要求 什么叫结构体 结构体是用户根据实际需要自己定义的复合数据类型 如何使用结构体 普通结构体变量.成员变量 /* @file main.c @brief 数据结构预备知识之结构体学习 @author EricsT (Erics ...

准备工作之指针与数组[基于郝斌课程]

博主头像 数据结构概述定义:我们如何把现实中大量而复杂的问题以特定的数据类型和特定的存储结构保存到主存储器(内存)中,以及在此基础上为实现某个功能(比如查找某个元素,删除某个元素,对所有元素进行排序)而执行的相应操作,这个相应的操作也叫算法。 数据结构 = 个体 + 个体的关系算法 = 对存储数据的操作 算法 ...

【LeetCode 33】算法:搜索旋转排序数组

博主头像 题目:整数数组 nums 按升序排列,数组中的值 互不相同 。 在传递给函数之前,nums 在预先未知的某个下标 k(0 <= k < nums.length)上进行了 向左旋转,使数组变为 [nums[k], nums[k+1], ..., nums[n-1], nums[0], nums[1], ...

【LeetCode 74】算法:搜索二维矩阵

博主头像 题目: 给你一个满足下述两条属性的 m x n 整数矩阵: 每行中的整数从左到右按非严格递增顺序排列。 每行的第一个整数大于前一行的最后一个整数。 给你一个整数 target ,如果 target 在矩阵中,返回 true ;否则,返回 false 。 问题中矩阵的每一行和每一列都是有序的,给定一个 ...

【LeetCode 236】算法:二叉树的最近公共祖先

博主头像 题目:给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。” 核心思路: 要找到给定二叉树中两个指定节点的最 ...

【LeetCode 437】算法:路径总和 III

博主头像 题目:给定一个二叉树的根节点 root ,和一个整数 targetSum ,求该二叉树里节点值之和等于 targetSum 的 路径 的数目。 路径 不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。 核心思想: 这个问题的核心思想是深度优先搜索(DFS) ...

<123···16>