- 博客(13)
- 收藏
- 关注
原创 【第十五届蓝桥杯基础算法复习】 考前必看知识点及代码模板总结
定义正无穷:0x3f3f3f3f 其实0x7fffffff=2147483647,恰好等于int型变量的上界,但是在求图的最短路径时,往往需要进行无穷大数的比较而0x7fffffff再加上一个正数会溢出,成为负数,所以一般情况下,定义为0x3fffffff或者0x3f3f3f3f 就能满足要求。大概原理就是先求出a的2^ 0 , a的2^ 1, ……这个文章整理的非常好,包括了结构体的排序、自定义排序等,注意理解cmp函数,他是bool类型的,比如里面的A.a>B.a,都是返回的true或者false。
2024-05-31 18:01:04
1092
原创 高精度运算(高精度加法、高精度减法、高精度乘法、高精度除法)
高精度就是很长的两个数做运算,需要用字符串来读进去,然后把他转化为数字存入vector数组中,转化成数字方便我们后续对每一位进行加减乘除运算,并且是低位在前,为了方便处理进位,每个模块后都附有对应例题。2024 蓝桥杯 省B R 格式AC代码在文章末尾。
2024-05-31 17:57:17
871
原创 输入输出总结(你会输出一个双引号吗?)
你会输出一个双引号吗?如何输入一行带空格的字符串?每个题我们都要用到输入输出,尤其在在输入字符串的时候,我们要对各个函数的截停条件要了解。
2024-05-31 16:41:31
644
原创 C++STL---String用法总结
一个专门存储和处理字符类型的容器, 具有强大的功能,拥有丰富的函数,可以让我们在进行字符串操作的时候提供很大的帮助。max_size()函数求出其最多可以有大概40亿的长度,string的用法其实非常多,没有重点也就失去了价值,这里只列举常用的~。由于字符转常常伴随读入操作,因此在重点介绍一下读操作,比如数据包含空格…//定义空 string 容器//定义新容器, 将 “abcde” 作为初值//几乎不用//这里注意我们是可以直接用等号的~很方便(string str8(str);这样也行。
2024-05-27 20:52:35
932
原创 C++ STL map合集(包括map、multimap、unordered_map、unordered_multimap)
map和set有很多相似的操作,比如其函数部分几乎是一样的,下文还会将一些部分进行比较,文章的排版也和set部分几乎一样,可自行食用~ —>C++ STL set合集(包括set、multiset、unordered_set、unordered_multiset)C++ STL中标准关联容器map, multimap,包括set, multiset,内部采用的就是一种非常高效的平衡检索二叉树:红黑树,也称为RB树(Red-Black Tree)。
2024-05-27 17:50:56
1080
原创 C++ STL set合集(包括set、multiset、unordered_set、unordered_multiset)
C++ STL中标准关联容器set, multiset, 包括map, multimap内部采用的就是一种非常高效的平衡检索二叉树:红黑树,也称为RB树(Red-Black Tree)。RB树的统计性能要好于一般平衡二叉树,其插入搜索速度都是log级别的,总之效率很高。set 的含义是集合,它是一个有序的容器,里面的元素都是排序好的,支持插入,删除,查找等操作,就像一个集合一样。所有的操作的都是严格在logn时间之内完成,效率非常高。
2024-05-26 23:54:48
890
原创 牛客小白月赛94--小苯的01背包(easy&hard ~包会的)
我们可以发现本题虽然和01背包很像,但是却不能用01背包来做,这个题只能枚举答案,hard版本质是贪心,依次枚举判断高位的情况。然后我们从1-n依次枚举每个物品,判断条件: (w[j]&i) == i,试想起初i(价值)是比较大的,对于大数而言,例如2,&完以后是会发生变化的,因此大的数我们还得判断是否符合条件,即让当前枚举价值不变。价值最大是10^9,又是&操作,因此我们用int完全可以,不一定是hard就开long long。如果用上面的枚举过了83%的数据,对于蓝桥杯啥的肯定够用了。
2024-05-26 21:47:37
839
原创 蓝桥杯2024年第十五届省赛真题-拔河(前缀和)
其中一种最优选择方式:队伍 1:{a1, a2, a3},队伍 2:{a4, a5},力量值和分别为 10 + 9 + 8 = 27,12 + 14 = 26,差距为 |27 − 26| = 1。,随后对数组进行排序,然后两两比较求出最小差值,另外为了防止同一编号的人被比较,我们需要另外把i也一起压进去,只有i不相同的才进行比较。i相同肯定会有重复的,i不同当j>i2时,也会有重复的,但是其差值必然是定值,就是选。的队伍的差值的最小值,因此要找连续区间内的和,当然要用前缀和来做。【评测用例规模与约定】
2024-05-23 16:39:05
861
1
原创 算法学习笔记 二分查找
对于二分查找有很多种实现方式,我们只需要牢记一种即可,下面分享一种代码简单,思维简单并且不会陷入死循环的代码,当然我们也可以用c++的函数来实现。
2024-03-11 23:42:02
913
1
原创 Acwing 算法学习笔记 递推 枚举 位运算
1.递推:其实就是由一种状态可以唯一确定下一步应该怎么操作,进而递推出结果。比如例题1。2.暴力枚举:遇到题目我们首先要考虑可不可以暴力实现,在此之前一定要提前计算时间复杂度,一般运算次数要小于一亿3.用位运算来实现枚举首先来看一段代码:(对位运算不了解的,先看下面位运算知识//代码取自例一的一段,下面对情景进行了说明,也可以先做例题op<32;op++)//op的每个值都代表第一行的一种状态i<5;i++) //op小于32 二进制表示最长5位具体操作...
2024-03-11 21:19:32
943
原创 Acwing 算法学习笔记 递归 枚举
递归问题都可以转化为搜索树用dfs来解决。指数型枚举:每次两个分支,选/不选(元素个数任意)排列型枚举:考虑顺序的枚举方案 (元素个数确定 例如:123 132是两种方案)组合型枚举:不考虑顺序的枚举方案(元素个数确定 例如:123 132是一种方案 )
2024-03-10 22:13:05
416
原创 C++文件操作
写文件步骤:1、包含头文件2、创建流对象 ofstream ofs3、打开文件 ofs.open(“文件路径”,打开方式)4、写数据 ofs<<“写入的数据”5、关闭文件 ofs.close()读文件步骤:1、包含头文件2、创建流对象 ifstream ifs;3、打开文件并判断文件打开是否成功 ifs.open(“文件路径”,打开方式);4、读数据 四种方式读取;5、关闭文件 ifs.close();
2023-06-04 12:58:53
6893
1
原创 C语言文件操作
好那么好,终于整完了,因为部分原因,有些内容考试不考,所以还是是不够全面,都是关于文件读写操作的细节、但是为了能尽力包含文件所有内容,方便以后学习查阅,后续会再出一篇文章来对此进行扩展完善,对以下内容进行说明:1.fflush():将缓冲区内容写入物理设备。2.标准输入/输出重定向:“"。3.sscanf()和sprintf()函数。4.文件读取结束的判定:ferror()函数、feof函数。5.文件缓冲区的相关说明。6.二进制文件和文本文件的区别。
2023-06-03 00:19:19
586
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人