- 博客(20)
- 收藏
- 关注
原创 蓝桥杯10天备战-day3基础算法
sort()的底层是快速排序,不具有稳定性。时间复杂度O (n log n)选择排序不具有稳定性。时间复杂度O (n²)(x1,y1)---(x2,y2)加上c。时间复杂度O (n²)对差分数组求前缀和得到原数组。统计子矩阵(70分解法)
2026-04-10 16:14:34
64
原创 蓝桥杯十天备战day1-模拟基础
字典序排序可以开string数组,用sort函数。先写暴力,再写正确代码,学习生成随机数,对拍。struct里的成员默认为public。class里的成员默认为private。fabs求浮点数的绝对值。abs求整数的绝对值。
2026-04-07 21:42:39
60
原创 蓝桥杯10天备战-stl笔记
注意:1.如果长度已确定,直接先指定长度,一个个push_back会重分配,容易MLE2.获取长度.size()返回值类型为size_t,32位编译器范围到2^32,如果直接两个size相乘可能溢出,应注意存储数据时进行数据类型的转换。
2026-04-03 14:30:57
362
原创 图:Day1【初学笔记】
第二次找和该点相邻的点,边权相加(第二列同一行的边权和若比第一列同一行的边权和小则更新,否则沿袭第一列的边权和),第二列边权和最小的集合标绿,用于下一次扩散。以一个点为起点,第一次找和该点相邻的点写入表格第一列,不相邻的设为无穷大,找到第一列中边权最小的集合标绿,用于下一次扩散。
2025-08-23 10:04:39
779
原创 树:Day5【初学笔记】并查集
将集合组成树型结构,子结点指向父节点,根结点指向自己。p数组的下标是结点的编号,元素的值是该节点的父亲。find操作:通过p数组找到根节点union操作:找到两个元素对应的根节点,让其中一个集合的根结点指向另一个集合的根节点最初所有元素都指向它自己,经过一系列的合并才组成现在的集合。【根据编号的范围进行初始化,0~n-1/1~n】最基础的find操作(方法:递归/循环 使用递归方便后面优化)优化(路径压缩):在查找该元素的根节点时,让其路径上的所有节点都指向根节点基本操作:优化1:(按高度合并,优先将
2025-08-19 10:58:07
204
原创 树:Day4【初学笔记】哈夫曼树
二进制编码的缺点:等长编码缺点:先统计每个字符的出现次数作为节点的权值,每次选择最小的两个合并(不断合并最小两个)【一个结点放左放右都可以,不影响结果的正确性,但会导致编出的哈夫曼树(有序树)不同,导致编出来的码不一样】例:序列ABAACDC A出现三次,值为三 B 值为一 C值为二 D值为一【将是其父节点的左孩子的结点设为0,右孩子设为1,一个结点的编码就是从根节点到该节点所经过的01序列】【编码的节点都是叶子节点,所以不会出现一个节点是另一个节点路上的节点的情况,所以一个节点不会是另一个节点的前缀,
2025-08-16 17:26:59
202
原创 树:Day3【初学笔记】二叉树的存储
回顾:线性表对于完全二叉树:(给每个结点按顺序编上号,存进数组)对于一般二叉树:(给空位置也编上号,存进数组,整型设为-1,字符型设为#)缺点:浪费空间优点:单个结点由数据,左指针和右指针构成。有几个存几个,不浪费空间。空指针的个数:结点的C++:【构建完成后可使用循环和递归创建二叉树】缺点:通过父亲找孩子容易,通过孩子找父亲很难解决方法:给每个结点增加一个指针域用来指向父亲推导二叉树过程中循环(递归)使用以下规律:知道前序遍历序列【可以确定根节点(序列第一个),但无法确定左右子树】知道后序遍历序列【可以确
2025-08-16 16:45:55
229
原创 树:Day2【初学笔记】二叉树定义, 性质
注:空二叉树是递归定义的一个边界情况(终止条件)上图中对于以B为根节点的二叉树,D在左边和右边是两种情况。而普通的度为二的树不区分左右子树。所以它们是两个完全不同的概念。【二叉树不等于度为二的树,度为二的树也不等于二叉树】2.二叉树的五种基本形态:所有二叉树都是由这五种基本形态组合而来。注:完全二叉树最后一层也可以是满的,此时它也是一颗满二叉树。【满二叉树是完全二叉树的一种特例】3.二叉树的性质:(2).二叉树的第i层最多有(2^i-1)个结点。
2025-08-16 09:59:08
278
原创 Java入门笔记Day4(黑马:24-28)
注:String是引用类型,不能用==比较,应该打点,调equals方法。3.流程控制:条件判断 三元运算符 switch 循环。注:ctrl+alt+l为格式对其,ctrl+shift+/为多行注释。2.逻辑运算符:(把多个关系运算组合的运算符称为逻辑运算符)
2025-08-15 13:35:14
175
原创 Java入门笔记Day3(黑马:18-23)
6.类型转换:(强转:将原类型低位的二进制依次填入转换类型【可能丢数据,需自己判断】)1.java中的数据类型:基本数据类型 引用数据类型。注:在小数强转为整数的时候会直接丢弃小数部分。
2025-08-14 12:39:23
188
原创 Java入门笔记Day2(黑马:11-17)
ASCII码:美国信息交换标准编码,规定了数字字符,英语字母,其他常用符号等共计128个字符及对应的数值编号。4.标识符(identifier):在java中,用来表示类,方法,变量等名称的自定义字符,都是标识符。2.变量(variable):指向内存中的一片空间,可以存储数据,也可以读取数据。每 8 个 bit 称为一个 Byte(字节),简写为 B,是计算机中数据读写的基本单位。java标识符由字母,数字,下划线(_)和美元符号($)组成。(3)文档注释/** */【通常出现在类,方法,字段等前面】
2025-08-12 11:53:46
195
原创 Java入门笔记Day1(黑马:01-10)
3.Java程序结构:程序由一个个方法(method)组成,将功能相联的方法写在一起组成类(class),将不同的类放到包(package)【又称目录】里,最终不同的包组成一个项目/工程(project)。新方法:在电脑系统中找到高级系统设置,打开环境变量,在系统变量中点击新建(新建系统变量),将所需jdk的bin目录加进去即可。5.课程目录:(1)注释(2)变量和常量(3)数据存储原理(4)数据类型(5)数据类型。(6)算数运算(7)流程控制(8)方法(9)数组。
2025-08-09 19:58:54
204
原创 Codeforces错题记录【 Those Who Are With Us】
【代码】Codeforces错题记录【 Those Who Are With Us】
2025-07-30 16:08:33
128
原创 深搜和广搜(bilibili学习笔记)
1.暴力搜索结果,能不能到或者进行剪枝优化。2.最短路径/最小生成树。2.排列组合,结合递归。3.正常情况下需要回溯。
2025-05-13 19:56:22
225
原创 ytu_3678汉诺塔问题(递归和用栈代替递归)
古代有一座汉诺塔, 塔内有 3 个座 A、B、C,AA、B、C, AA、B、C,A 座上有 几 个盘子, 盘子大小不等, 大的在下,小的 在上, 如图 4−14-14−1 所示。有一个和尚想把这n nn个盘子从AA A座移到 CC C座, 但每次只能移动一个盘子, 并且在移动过程中, 3 个座上的盘子始终保持大盘在下,小 盘在上。汉诺塔内的盘子个数 nnn (1≤n≤20)(1 \le n \le 20)(1≤n≤20)。输出移动的步骤, 每行一步, 如从 AAA 座移动到 CCC 座, 输出。
2025-04-21 11:10:42
236
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
1