10 2023 档案

摘要:往昔少年时 家中长者常劝诫以万般皆下品,唯有读书高 然懵懂之辈实践浅薄,常怀不识之念 胸无点墨又不耐寒窗苦读 见手不释卷,胸有锦绣者,常羡而慕之,乃效仿,却难得其中三昧 于是叹曰,非吾之过,此天赋使然也 遂沉湎与虚无缥缈之梦,蹉跎岁月,虚度年华 今时今日,每念及此,常追悔莫名 人皆恰同学少年,风华正 阅读全文
posted @ 2023-10-25 17:37 grave-master 阅读(373) 评论(0) 推荐(0) 编辑
摘要:一、算法描述 上一篇文章介绍了一维差分,本篇文章来介绍一下什么是二维差分。 含义 显然一维差分是一维前缀和的原数组,那么二维差分就是二维前缀和的原数组。 怎么求 跟一维一样,插入一遍即可,但是要注意每次插入要在同一个位置内插入,insert(i, j, i, j, a[i][j]);。 怎么用 一维 阅读全文
posted @ 2023-10-20 19:05 grave-master 阅读(1166) 评论(0) 推荐(0) 编辑
摘要:一、算法描述 本篇文章介绍前缀和的逆运算,差分。 什么是差分? 差分是前缀和的逆运算,比如 a[n] 是原数组,s[n]a[n] 的前缀和数组,那么对于 s[n] 来说,a[n] 就是 s[n] 的差分数组。 假设原数组为 a[n]阅读全文
posted @ 2023-10-19 21:18 grave-master 阅读(287) 评论(0) 推荐(0) 编辑
摘要:一、算法描述 上一篇文章介绍了一维前缀和,也就是一个数组的前n项和,这篇文章来介绍一下什么是二维前缀和。 含义 一维的是前n项的和,那么二维的情况下,表示的则是与左上角形成的矩形和。 怎么求 一维的递推关系式是s[i] = s[i - 1] + a[i];,我们根据含义来思考二维的递推关系式,读者可 阅读全文
posted @ 2023-10-18 21:02 grave-master 阅读(186) 评论(0) 推荐(0) 编辑
摘要:一、算法描述 本篇文章我们来介绍一个简单的算法,前缀和。 什么是前缀和? 前缀和是某一个序列的前n项的和,可以理解为数学上的数列的前n项和。 如果 as 分别是原数组和前缀和数组,那么应该有如下关系: s[1] = a[1];、s[2] = a[1] + a[2];、s[3] 阅读全文
posted @ 2023-10-17 11:23 grave-master 阅读(138) 评论(0) 推荐(0) 编辑
摘要:一、算法描述 高精度除法和乘法讨论的一样,都是一个大整数和一个小整数之间的运算。 算法思路 根据小学除法一样,我们还是模拟这个过程。 注意这里遍历A数组的时候要按照我们读数字的顺序,也就是从数组尾部到头部遍历。 每一位的计算过程应该是,上一轮的余数r10之后加上当前位数上的 阅读全文
posted @ 2023-10-16 21:04 grave-master 阅读(78) 评论(0) 推荐(0) 编辑
摘要:一、算法描述 高精度加减法讨论的是两个大整数之间的运算。 而这里高精度乘除法讨论的是一个大整数和一个小整数之间的关系。 算法思路: 还是模拟小学的乘法列竖式,只不过此时不太一样,原本的列竖式是一位一位的乘,这里需要改变一下思路。 这里直接把小整数当成一个数,所乘的数直接当成进位参与运算即可。 每次进 阅读全文
posted @ 2023-10-15 22:21 grave-master 阅读(163) 评论(0) 推荐(0) 编辑
摘要:一、算法描述 要实现两个高精度数的减法,和高精度加法一样都是模拟竖式计算的过程,主要就是解决以下两个问题。 谁大谁小? 由于这两个数字都很大,但是不知道谁更大,所以要先判断哪个数更大,思路如下: 判断这两个数谁的位数更大,位数更大的自然更大。 如果位数不相同,从最高位开始往低位遍历,判断两个数字是否 阅读全文
posted @ 2023-10-13 22:17 grave-master 阅读(79) 评论(0) 推荐(0) 编辑
摘要:一、算法描述 高精度问题是指两个数字非常大,超过了int,甚至long long的范围,数字的位数甚至能达到105,那么如果要实现这样两个大数字的运算,需要解决以下两个问题: 如何存储? 这样的两个数字相加是不可能用普通类型来存储的,所以我们第一个要解决的问题就是如何存储高精度数。 首先读 阅读全文
posted @ 2023-10-13 11:12 grave-master 阅读(89) 评论(0) 推荐(0) 编辑
摘要:一、算法简介 浮点数二分相比与整数二分就要简单很多了,但是还是要注意范围的问题。 以下给出一个小例子,求 x 的平方根,x 的范围在 [0,10000] 内: #include <iostream> #include <cmath> using namespace std; 阅读全文
posted @ 2023-10-12 22:42 grave-master 阅读(88) 评论(0) 推荐(0) 编辑
摘要:一、算法简介 二分法,即二分搜索法,是通过不断缩小解可能存在的范围,从而求得问题最优解的方法。 例如,如果一个序列是有序的,那么可以通过二分的方法快速找到所需要查找的元素,相比线性搜索要快不少。 此外二分法还能高效的解决一些单调性判定的问题。 二分的关键不在于单调性,或者说二分的本质并不是单调性。 阅读全文
posted @ 2023-10-11 23:33 grave-master 阅读(272) 评论(0) 推荐(0) 编辑
摘要:一、题目来源 AcWing算法基础课-788.逆序对的数量 二、题目描述 给定一个长度为 n 的整数数列,请你计算数列中的逆序对的数量。 逆序对的定义如下:对于数列的第 i 个和第 j 个元素,如果满足 i<ja[i]>a[j],则其为一个逆序对 阅读全文
posted @ 2023-10-11 17:15 grave-master 阅读(78) 评论(0) 推荐(0) 编辑
摘要:一、算法描述 归并排序,是创建在归并操作上的一种有效的排序算法。 算法是采用分治法的一个非常典型的应用,且各层分治递归可以同时进行。 归并排序思路简单,速度仅次于快速排序,为稳定排序算法,一般用于对总体无序,但是各子项相对有序的数列。 思路如下: 取分界点,int mid = (l + r) / 2 阅读全文
posted @ 2023-10-10 17:26 grave-master 阅读(67) 评论(0) 推荐(0) 编辑
摘要:一、算法描述 在我们求一组元素的第K大值或者前K大值时,可能最先想到的是对元素进行排序,然后选择第K大的或者前K大的值。 不过我们只是想取第K大的数,有必要将整组元素进行排序吗?当然不必,这就是我们将要介绍的快速选择算法,其时间复杂度可以达到O(n)阅读全文
posted @ 2023-10-06 11:16 grave-master 阅读(84) 评论(0) 推荐(0) 编辑
摘要:一、算法描述 快速排序算法是对冒泡排序算法的一种改进算法,在当前所有内部排序算法中,快速排序算法被认为是最好的排序算法之一。 快速排序的基本思想: 通过一趟排序将待排序的序列分割为左右两个子序列,左边的子序列中所有数据都比右边子序列中的数据小,然后对左右两个子序列继续进行排序,直到整个序列有序。 思 阅读全文
posted @ 2023-10-05 20:23 grave-master 阅读(99) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示