摘要: 一、算法描述 本篇文章介绍位运算,直接从用法方面来介绍。 求第 K 位 将第 \(k\) 位移到最后面。 &1 即可。 所以操作为:n >> k & 1 求最后一个 1(求 1 的个数) \(x\) = \(1010...100...0\) ~\(x\) = \(0101...011...1\) ~ 阅读全文
posted @ 2023-11-22 14:01 grave-master 阅读(68) 评论(0) 推荐(0) 编辑
摘要: 一、题目来源 AcWing算法基础课-2816.判断子序列 二、题目描述 给定一个长度为 \(n\) 的整数序列 \(a_1,a_2,…,a_n\) 以及一个长度为 \(m\) 的整数序列 \(b_1,b_2,…,b_m\)。 请你判断 \(a\) 序列是否为 \(b\) 序列的子序列。 子序列指序 阅读全文
posted @ 2023-11-22 09:04 grave-master 阅读(48) 评论(0) 推荐(0) 编辑
摘要: 一、题目来源 AcWing算法基础课-800.数组元素的目标和 二、题目描述 给定两个升序排序的有序数组 \(A\) 和 \(B\),以及一个目标值 \(x\)。 数组下标从 \(0\) 开始。 请你求出满足 \(A[i] + B[j] = x\) 的数对 \((i,j)\)。 数据保证有唯一解。 阅读全文
posted @ 2023-11-21 23:00 grave-master 阅读(30) 评论(0) 推荐(0) 编辑
摘要: 一、算法描述 含义 双指针,指的是在遍历对象的过程中,不是普通的使用单个指针进行访问,而是使用两个相同方向(快慢指针)或者相反方向(对撞指针)的指针进行扫描,从而达到相应的目的。 另外还可以根据序列进行区分,例如在快排中,双指针指向的是同一个序列,而归并排序中两个指针指向的是两个不同的序列。 怎么用 阅读全文
posted @ 2023-11-21 21:12 grave-master 阅读(82) 评论(0) 推荐(0) 编辑
摘要: 往昔少年时 家中长者常劝诫以万般皆下品,唯有读书高 然懵懂之辈实践浅薄,常怀不识之念 胸无点墨又不耐寒窗苦读 见手不释卷,胸有锦绣者,常羡而慕之,乃效仿,却难得其中三昧 于是叹曰,非吾之过,此天赋使然也 遂沉湎与虚无缥缈之梦,蹉跎岁月,虚度年华 今时今日,每念及此,常追悔莫名 人皆恰同学少年,风华正 阅读全文
posted @ 2023-10-25 17:37 grave-master 阅读(306) 评论(0) 推荐(0) 编辑
摘要: 一、算法描述 上一篇文章介绍了一维差分,本篇文章来介绍一下什么是二维差分。 含义 显然一维差分是一维前缀和的原数组,那么二维差分就是二维前缀和的原数组。 怎么求 跟一维一样,插入一遍即可,但是要注意每次插入要在同一个位置内插入,insert(i, j, i, j, a[i][j]);。 怎么用 一维 阅读全文
posted @ 2023-10-20 19:05 grave-master 阅读(542) 评论(0) 推荐(0) 编辑
摘要: 一、算法描述 本篇文章介绍前缀和的逆运算,差分。 什么是差分? 差分是前缀和的逆运算,比如 \(a[n]\) 是原数组,\(s[n]\) 是 \(a[n]\) 的前缀和数组,那么对于 \(s[n]\) 来说,\(a[n]\) 就是 \(s[n]\) 的差分数组。 假设原数组为 \(a[n]\) , 阅读全文
posted @ 2023-10-19 21:18 grave-master 阅读(142) 评论(0) 推荐(0) 编辑
摘要: 一、算法描述 上一篇文章介绍了一维前缀和,也就是一个数组的前n项和,这篇文章来介绍一下什么是二维前缀和。 含义 一维的是前n项的和,那么二维的情况下,表示的则是与左上角形成的矩形和。 怎么求 一维的递推关系式是s[i] = s[i - 1] + a[i];,我们根据含义来思考二维的递推关系式,读者可 阅读全文
posted @ 2023-10-18 21:02 grave-master 阅读(106) 评论(0) 推荐(0) 编辑
摘要: 一、算法描述 本篇文章我们来介绍一个简单的算法,前缀和。 什么是前缀和? 前缀和是某一个序列的前n项的和,可以理解为数学上的数列的前n项和。 如果 \(a\) 和 \(s\) 分别是原数组和前缀和数组,那么应该有如下关系: s[1] = a[1];、s[2] = a[1] + a[2];、s[3] 阅读全文
posted @ 2023-10-17 11:23 grave-master 阅读(94) 评论(0) 推荐(0) 编辑
摘要: 一、算法描述 高精度除法和乘法讨论的一样,都是一个大整数和一个小整数之间的运算。 算法思路 根据小学除法一样,我们还是模拟这个过程。 注意这里遍历\(A\)数组的时候要按照我们读数字的顺序,也就是从数组尾部到头部遍历。 每一位的计算过程应该是,上一轮的余数\(r\)乘\(10\)之后加上当前位数上的 阅读全文
posted @ 2023-10-16 21:04 grave-master 阅读(55) 评论(0) 推荐(0) 编辑