自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 并查集initial,find,union+应用

【代码】并查集initial,find,union+应用。

2025-04-10 20:33:24 231

原创 Mb,Kb,byte,bits

位 二进制整数,如果不考虑程序占用的空间和维护内存需要的辅助空间,请问 256MB的空间可以存储多少个。的内存空间开一个数组,数组的每个元素都是。1KB=1024byte(字节);1byte=8bits(位);

2025-04-09 20:54:29 186

原创 sqrt,sqrtl,sqrtf

【代码】sqrt,sqrtl,sqrtf。

2025-04-09 20:37:28 56

原创 kmp算法

时间复杂度O(n + m),n是文本串长度,m是模式串长度。

2025-04-08 11:23:11 166

原创 输入的格式问题

如果输入的是这种不带空格的数,是连续数字字符串,要用char,或者string。如果输入的数字之间带空格;

2025-04-07 12:04:13 102

原创 唯一分解定理

任何一个大于1 的正整数,都可以唯一地分解成若干个质数的乘积(不考虑因子的顺序)

2025-04-06 19:04:47 82

原创 如何输出long long 类型的小数

【代码】如何输出long long 类型的小数。

2025-04-02 10:51:53 68

原创 SPFA算法+Floyd-Warshall算法+dijkstra算法

最坏情况时间复杂度:O(n⋅m),n是节点数,m是边数;2.实际运行效率通常优于Dijkstra。1.能处理带有负权边的最短路径问题。1.存在负权环,无法检测出。平均时间复杂度:O(m)

2025-03-31 15:35:46 202

原创 线段树——>建树build,区间查询query,单点更新adddate,区间更新update,懒标记

【代码】线段树——>建树build,区间查询query,单点更新adddate,区间更新update,懒标记。

2025-03-30 14:22:23 141

原创 逆元的应用,存在条件

这个定理说明,对于质数p和整数a,a的(p-1) 对模 p 运算的结果是 1。在模m下,数a的逆元条件是a与m互质(即gcd(a,m)=1)那么b就是a在模m下的逆元,记作:a的-1次方mod(m)。如果gcd(a,m)>1,则a在模m下没有逆元。在模7下,找到3的逆元。逆元:又叫做“乘法逆元”。

2025-02-26 13:55:27 349

原创 重载运算符

"运算符,使得在priority_queue中,当比较两个node对象时,较小的step值会被认为是“大”节点,从而被优先处理。,即当前节点t的step比a的step小,那么返回false,表示当前节点t的优先级高,会优先处理。",来改变优先队列的排序规则,使得每次弹出的元素是step值最小的节点,从而实现最小堆的行为。,即当前节点t的step比a的step大,那么返回true,表示在优先队列中t的优先级低。默认是一个最大堆(即每次弹出的元素是当前队列中最大的元素)。,然后是节点 A 和 B。

2025-02-22 11:48:56 309

原创 全局变量,局部变量

因为在函数中调用这个全局变量时,调用的值是在头文件下面的初始值,虽然你在main函数中改变了变量的值,但是你在main函数中重新定义了。如果这样写会过50%的数据,因为在main函数中又重新定义了,把main函数中的定义去掉时就可以ac代码了。在main函数中又定义一遍全局变量:会导致程序出错。

2025-02-22 11:34:51 139

原创 快速幂和矩阵快速幂

高效计算矩阵的幂次(如A^n)的一种算法。

2025-01-25 12:08:59 180

原创 C语言优先级顺序表

2025-01-10 21:51:45 317

原创 用数组模拟单链表的删除,插入

【代码】用数组模拟单链表的删除,插入。

2025-01-05 14:23:02 179

原创 多组输入时要记得“清空”+用数组模拟队列

因为是多组输入,忘记清空队列,导致Wrong answer现在改一下queue<node>q的位置;假如不用queue,可以用数组模拟队列:

2025-01-03 13:27:55 122 2

原创 整数二分,浮点数的二分

【代码】整数二分,浮点数的二分。

2025-01-01 17:17:27 216

原创 一维前缀和,二维前缀和

【代码】一维前缀和,二维前缀和。

2025-01-01 17:06:30 171

原创 一维差分,二维差分,三维差分

【代码】一维差分,二维差分,三维差分。

2025-01-01 12:07:18 151

原创 强制类型转换算乘除加括号与不加括号的区别

然后,执行long long 类型和(a[5]+1)的乘法;首先,计算括号里面的(a[5]*(a[5]+1))/2;其次,将a[5]强制转换为long long 类型;然后,将第一步的结果强制转换为long long类型。首先,计算a[5]+1;最后,将结果除以2;最后,将结果除以2;

2024-12-31 13:28:30 339

原创 树状数组的原理及树状数组的样子

如果能被2^0整除就是第0层;2^1整除就是第1层;2^2整除就是第二层......后面有几个零就是第几层。附一张树状数组的图片。

2024-12-27 20:58:59 210

原创 归并排序以及求逆序对的灵活应用

【代码】归并排序以及求逆序对的灵活应用。

2024-12-27 20:55:03 120

原创 sscanf和c_str

返回的是一个C风格的字符串,这个字符串与原字符串的内容相同,但它并不允许修改字符串的内容。失败时:返回EOF(通常是-1),表示格式化字符串没有正确匹配的输入;c_str:是C++标准库中string类的成员函数;函数是 C 风格的函数,要求输入是 C 风格的字符串。sscanf是C和C++标准库中的一个函数;允许从一个格式化的字符串中解析出多个值;%d:解析整数(年份,小时,分钟等);从字符串中按指定格式提取数据;成功时:返回成功提取的项目数;%x:解析十六进制整数。%c:解析单个字符;

2024-12-24 17:53:50 208

原创 stringstream的应用

4.流结束时(EOF),当读取到流的末尾时,stringstream会停止读取。1.它在遇到空白字符(空格。换行符)时会停止读取当前数据项。2.对于数字类型,在遇到非数字字符时,读取会停止。这个代码中有个stringstream的应用;关于stringstream,3.遇到流状态错误时会停止。

2024-12-20 15:21:05 148

原创 线性同余方程+模运算取正余数

如果c≡j-a*i(modn),意思是c和j-a*i对n取余后的余数相等。C+a*i≡j(modn),意思是c+a*i和j对n取余后的余数相等。3.模运算取正余数的方法。

2024-12-07 11:06:56 205

原创 头插法尾插法创建一个单链表,在链表中的删除,查找,插入

【代码】头插法尾插法创建一个单链表,在链表中的删除,查找,插入。

2024-09-23 14:31:34 158

原创 C语言头文件<string.h>下的常用函数,<algorithm>和<string>头文件下find的区别

6.strchr():在字符串中查找某个字符的首次出现的位置。7.strstr():在字符串中查找子字符串首次出现的位置。是一个无符号的整数类型,常用于表示内存大小和数组索引)1.strlen():计算字符串的长度。5.strcmp():字符串的比较。2.strcpy():字符串复制。3.strcat():字符串拼接。4.strlen():字符串长度。0:第一个字符串大于第二个。=0:两个字符串相等。

2024-09-09 20:46:50 271

原创 to_string /atoi/c_str()

3.atoi需要一个const char*类型的参数,c_str()会返回一个指向字符串const char*的指针。1.to_stirng()是一个把数字转换为字符的函数,在头文件中。2.atoi转换函数,只能转换以数字开头的字符串。

2024-09-01 11:20:10 253

原创 malloc和new分配内存时的区别

2.new会自动调用构造函数来初始化函数,返回的是正确的指针类型,不需要进行类型转换。malloc只是分配原始的内存块,需要指明转换类型,需要手动初始化结构体成员。malloc使用free函数来释放malloc分配的内存。4.new更适合C++,malloc更适合传统的C风格。3.new用delete操作符释放new分配的内存。malloc是一个动态分配内存的函数。1.new是一个操作符。

2024-08-15 14:39:02 173

原创 遍历单双向链表

无论是单向链表还是双向链表,这种遍历方式都是可行的。:在每次迭代中,访问当前节点后,通过。,从链表的第一个实际节点开始遍历。更新为下一个节点的索引。

2024-08-09 20:13:33 104

原创 malloc+顺序表(查找,插入,删除)

1.用户输入时是以回车键(’\n')结束输入,但在C和C++中,字符串内部使用('\0')来表示字符串的结束。n*sizeof(int):表示需要分配n个int类型的内存空间。调用:int* arr=(int*)malloc(n*sizeof(int));int*将malloc返回的void指针转换为int*类型。头文件:#include <stdlib.h>指针-指针得到的是两个元素之间的个数。),然后将其替换为字符串终止符(),确保字符串能够正确处理。两个指针指向同一块空间。2.malloc函数。

2024-08-09 20:08:53 365

原创 最长递增子序列(当动态规划dp超时时,用二分法nlogn)

/使用二分法在low数组中找到第一个大于等于。} //a[i]的位置,并用a[i]替换它。

2024-08-02 15:34:06 160

原创 5.20——高精度加减乘法+strcmp函数

用于比较字符串,而不是两个整数,它的参数应该是指向以空字符结尾的字符数组的指针。在头文件<cstring>中。4.关于strcmp函数;

2024-05-20 18:46:30 204 1

原创 指针的简单了解

指针的类型决定了对指针解引用的时候有多大的权限(能操作几个字节)。比如:char*的指针解引用就只能访问一个字节,而int*的指针的解引用就能访问4个字节。1>>在32位机器上,地址是32个0或者1组成二进制序列,那地址就得用4个字节的空间来存储,所以一个指针变量的大小就应该是4个字节。2>>如果在64位机器上,如果有64个地址线,那一个指针变量的大小是8个字节,才能存放一个地址。为了能够有效的访问到内存的每一个单元,就给内存进行了编导,这些编号被称为该内存的地址。为什么指针的大小是相同的呢?

2024-05-20 18:32:36 266 1

原创 线性表的顺序存储和链式存储

访问下标为i的元素:l.arr[i]或ptrl->arr[i];线性表的长度:l.last+1或ptrl->last+1;利用数组的连续存储空间顺序存放线性表的各元素;表的起始位置称为表头,表结束位置称为表尾;表中元素个数成为线性表的长度;线性表没有元素时,成为空表;

2024-05-08 11:21:47 285 1

原创 string头文件下的常用函数总结

10,replace()——用一个新的字符串替换指定位置的字符或字符串。3,empty()——检查字符串是否为空,返回true或者false。2,size()——返回字符串大小,与length()作用相同。6,insert()——在指定位置插入一个字符串或者字符序列。8,substr()——返回从指定位置开始的指定长度的字符串。9,find()——在字符串中查找第一次出现指定字符串的位置。5,append()——将一个字符串添加到当前字符串的末尾。7,erase()——删除指定位置的字符。

2024-04-11 20:35:22 527 1

原创 算组合数C

【代码】算组合数C。

2024-04-11 19:34:37 292 1

原创 二维动态数组+双指针+宏+向量容器+逻辑运算(与或非异或)+异或和

意义:可以在数组中存储一系列的以为数组表现形式:vector<vector<int>>arr;初始化的方式:3>> 初始化列表初始化意义:定义两个指针 (即是索引下标)一个从前面,一个从后面,两者同时向中间移动,并交换元素,时间复杂度o(n);(erase函数的时间复杂度是o(n),如果再加一层for循环,就是o(n^2,erase只是覆盖并不是移除)什么是宏:是一种预处理指令。类型:常量宏,函数宏,代码段宏是如何定义的:#define+宏的名称+宏的替换文本。

2024-04-02 17:49:12 342 1

原创 埃式筛法+欧拉筛法

标记每个数2的倍数,因为在自然数里两步一个偶数,两步一个奇数,大部分合数也是2的倍数,所以标记2*i足以筛出一大部分非质数;

2024-03-20 22:39:13 322 1

原创 欧几里得算法+扩展欧几里得算法(应用于线性同余方程)

当A=12921,B=4234时,12921/4234=3余219,此时219作除数,4234作被除数,则4234/219=19余73,然后73作除数,219作被除数,则219/73=3余0;因为R=A-B*q,所以代入得:R=a*u-b*u*q=u*(a-b*q);所以带入化简得:a*y1+b(x1-(a/b)*y1)=gcd(a,b);由上式定理可得:b*x1+(a%b)*x2=gcd(b,a%b);假设A和B的最大公约数为u,则A=a*u,B=b*u;又因为:a%b=a-(a/b)*b。

2024-03-18 23:28:11 516

空空如也

空空如也

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

TA关注的人

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