自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 从零开始的异世界算法*5(区间合并)

给出n个区间,求出合并后的区间个数。

2024-03-13 08:59:05 332

原创 从零开始的异世界算法*4(前缀和与差分)

接下来输入 m 个操作,每个操作包含三个整数 l,r,c,表示将序列中 [l,r]之间的每个数加上 c。前缀和与差分的概念和数列的前n项相似,可用于优化时间复杂度,快速计算一个区间的长度。首先是一维数组的前缀和,求出数组l到r区间上的和,n次读入。然后是一维数组的差分,可以应用于在某一段连续区间的修改。再看看差分,先构造一个b数组使得b数组的前缀和为a数组。首先可以通过递推计算的出二维数组前缀和的公式。然后计算x1y1x2y2构成的子矩阵的和。然后是相对复杂的二维数组的前缀和与差分。

2024-03-06 18:24:07 348

原创 从零开始的异世界算法*3(位运算)

原理是此处的-x即为x的补码,如10100的补码为取反x+1即为01100,用&后便可以返回100,1.lowbit函数,返回一个二进制数的最后一位1。基于此函数可以用于统计二进制数中1的个数。

2024-03-06 08:54:53 271

原创 从零开始的异世界算法*2--二分

第二种则是从右向左查到第一次出现的元素,此处对于mid的计算要格外注意,比如说,当l=r-1,此时l+r>>1是向下取整,仍然为r减一,进入死循环,因此改为l+r+1>>1。一.区间[l,r]被分为[l,mid]与[mid+1,r]二.区间被分为[l,mid-1]与[mid,r]首先是比较复杂的整数二分法,分为两种情况。一种是从左向右查找第一个出现的元素。

2024-02-29 15:52:26 315

原创 开始学算法

接下来的博客当作笔记记录一下算法的学习过程 此章为快速排序和归并排序。两者都是分治算法 分为三步。

2024-02-28 21:50:05 343 1

原创 快速幂取模运算

可以进行精度较高的取模运算,首先注意到取模运算有如下性质。可以得到如下代码,计算a的b次方的后三位数。

2024-02-19 22:34:36 385 1

原创 快速幂的几种实现方式

【代码】快速幂的几种实现方式。

2024-02-19 22:18:37 328 1

原创 用数组实现日期运算

比如:阿尔法炸弹2015年1月1日放置,定时为15天,则它在2015年1月16日爆炸。有一个贝塔炸弹,a年b月c日放置,定时为n天,请你计算它爆炸的准确日期。在X星系的广袤空间中漂浮着许多X星人造“炸弹”,用来作为宇宙中的路标。每个炸弹都可以设定多少天之后爆炸。

2024-01-31 19:36:27 362

原创 关于我入门dfs写的一段代码

很明显,没有了回溯只会输出其中一个答案,先稍安勿躁,让我们来详细看看这段递归是如何进行的,(先默认输入的n为3),首先,1传递到了dfs函数中,此时step为一,不满足递归结束条件,此时book【1】为1,for循环从2开始,使得a[2]=2,再次递归dfs(3),1,2均已经使用,使得a[3]=3,dfs(4),至此,递归结束,打印1 2 3,运行结束。学习中我发现dfs中最难理解的一步就是回溯,所以我先写出了不带有回溯的代码,如下。这段代码是有关与实现从正整数1到n的全排列。输出结果为1 2 3。

2024-01-28 18:58:05 349

原创 寒假写的一些题目...

有三个字符串S1,S2,S,其中S长度不超过300,S1和S2的长度不超过10.想检测S1和S2是否同时在S中出现,且S1位于S2的左边,并在S中互不交叉(即S1的右边界点在S2的左边界点的左侧)。例如,S=abcd123ab888efghij45ef67kl,S1=ab,S2=ef,其中,S1在S中出现了2次,S2也在S中出现了2次,最大跨距为18.一般的文本编辑器都有查找单词的功能,该功能可以快速定位特定单词在文章中的位置,有的还能统计出特定单词在文章中出现的次数。剩下一个月寒假再刷刷。

2024-01-24 18:24:54 371 1

原创 指针的定义及其简单应用

不难发现,xy的值并没有得到交换,这是因为,虽然在开始px py pt分别指向了xyt,但在交换时,并没有使用*px,而是px-指针本身的值,是一个地址,这段语句只是将指针变量的值交换了,使得指针px指向了y,指针py指向了x,但xy本身的值并没有交换。若定义一个指针变量px,使px=arr,那么对arr进行加减常数a,则等价于指针的指向动了a个单位。而在二维数组中,则有些不同,首先,我们知道二位数组在内存中的存储依旧是线性的,因此我们可以利用指针对二维数组进行相对简单的输入输出,这一部分与一维数组相似。

2023-11-29 21:39:08 376 1

原创 strlen 和 sizeof的一点区别

strlen和sizeof的区别

2023-11-22 09:01:15 50

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除