感谢校内模拟赛给我强行灌输了这个东西。。。 概述 操作分块 / 根号重构,又名时间轴分块,是一种用于解决多次修改和查询问题的高效算法,这类问题一般的特征: 难以 polylog; 暴力简单; 可以通过处理前面的修改,较快贡献后面的询问; 借鉴序列分块的思想,我们设定一个阈值 \(B\),将连续 \( ...
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 ...
数据结构概述定义:我们如何把现实中大量而复杂的问题以特定的数据类型和特定的存储结构保存到主存储器(内存)中,以及在此基础上为实现某个功能(比如查找某个元素,删除某个元素,对所有元素进行排序)而执行的相应操作,这个相应的操作也叫算法。 数据结构 = 个体 + 个体的关系算法 = 对存储数据的操作 算法 ...
题目:整数数组 nums 按升序排列,数组中的值 互不相同 。 在传递给函数之前,nums 在预先未知的某个下标 k(0 <= k < nums.length)上进行了 向左旋转,使数组变为 [nums[k], nums[k+1], ..., nums[n-1], nums[0], nums[1], ...
题目: 给你一个满足下述两条属性的 m x n 整数矩阵: 每行中的整数从左到右按非严格递增顺序排列。 每行的第一个整数大于前一行的最后一个整数。 给你一个整数 target ,如果 target 在矩阵中,返回 true ;否则,返回 false 。 问题中矩阵的每一行和每一列都是有序的,给定一个 ...
使用时间复杂度为 O(log n) 的二分查找算法,实现在排序数组中找到目标值的索引,给出了Java代码实现和详细算法步骤。 ...
题目:给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。” 核心思路: 要找到给定二叉树中两个指定节点的最 ...
题目:给定一个二叉树的根节点 root ,和一个整数 targetSum ,求该二叉树里节点值之和等于 targetSum 的 路径 的数目。 路径 不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。 核心思想: 这个问题的核心思想是深度优先搜索(DFS) ...
题目:给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的先序遍历, inorder 是同一棵树的中序遍历,请构造二叉树并返回其根节点。 根据给定的先序遍历(preorder)和中序遍历(inorder)数组来重建二叉树是一个经典的算法问题。先序遍历的第一个元 ...
https://www.luogu.com.cn/problem/P1948 https://www.acwing.com/problem/content/description/342/ 方法一 分层图 每次选择从当前点前往另一点时要不要选择付费, 最多选择 \(k\) 次不付费, 所以就是 \( ...
BST,即二叉搜索树,该数据结构规定任意若一个结点存在左子树,那么该结点键必须要大于左子树上所有键;若有右子树,那么该结点键必须要小于右子树上所有键 简单的BST是树形查找里的入门级数据结构,不涉及平衡性调节,只需要简单插入删除,即可,其中删除稍复杂,但是也不难,只需要把三种情况分清即可。简单的BS ...
给你二叉树的根结点 root ,请你将它展开为一个单链表: 展开后的单链表应该同样使用 TreeNode ,其中 right 子指针指向链表中下一个结点,而左子指针始终为 null 。 展开后的单链表应该与二叉树 先序遍历 顺序相同。 进阶:你可以使用原地算法(O(1) 额外空间)展开这棵树吗? 需 ...
最努力的活着 数学 #高精度 题目 思路 注意到本题给的\(1\leq n\leq 1e 12\),因此需要使用\(\_\_int 128\)(最大可以存\(2^{128}\))来提高精度 贪心地想,为了使得最后的答案最大,每次删去的数必然要尽可能小,因此每次删去最小的\(\frac{len}{w} ...
滑动时间窗口和固定时间窗口是两种常见的限流算法,它们的主要区别在于如何处理时间窗口和请求的计数方式。 一、固定时间窗口算法 1.定义 固定时间窗口算法将时间划分为多个固定长度的窗口,每个窗口内允许通过的请求数量是固定的。例如,每秒允许100个请求通过。 2.工作原理 时间窗口划分:时间被划分为固定长 ...
伤害冷却比 数学 题目 思路 令\(a=\frac{K}{N}\),则有\(f(x)=x\left( \left\lfloor \frac{a}{x} \right\rfloor +1\right)\) 大致画出图像,可得下图 若要求区间\([L,R]\)上的最大值,则需要求出\(f(R)\)与红线 ...
2 - SAT 定义 2 - SAT 指的是一种问题形式,通常表述为有 n 个集合,每个集合有且仅有两个元素,且集合之间有对应关系。 举个例子,假设有两个集合 \(A = \left \{a, b \right \}\) , \(B = \left \{c, d \right \}\) ,存在对应关 ...