- 博客(25)
- 收藏
- 关注
原创 算法知识-18-STL
STL 就是标准模板库STL 提供了多种容器,比如vector:动态数组deque:双端队列set:有序集合map:有序映射,键值对集合,键唯一且自动排序stack:栈queue:队列priority_queue:优先队列我们本次主要使用栈(stack),队列(queue),动态数组(vector)
2024-12-20 18:13:10
765
2
原创 算法知识-17-图
无向图在计算机科学和数学中常用于表示网络、地图等结构,其中结点之间的连接没有特定的方向。有向图在计算机科学和数学中常用于表示网络、流程图等结构,其中结点之间的连接有特定的方向。n 个结点的有向图边数 = n*(n-1),无向图边数 = n*(n-1)/2 的公式。图是由有限个结点和结点之间的边组成的,通常表示为 G=(V,E)。若同一条边不重复出现,且不存在结点到自身的边,则称图为简单图。结点 v 入度:有向图中以结点 v 作为终点边的数目。结点 v 出度:有向图中以结点 v 作为起点边的数目。
2024-12-13 16:31:33
477
原创 算法知识-16-树
二叉树是一种特殊的树型结构,树中结点的度都不大于 2,它是一种最简单且最重要的树。结点数量在二叉树的第层上最多有个结点()。深度为的二叉树最多有个结点()。
2024-12-13 16:18:12
378
原创 算法知识-15-深搜
迷阵由 M×N 个方 格组成,有的方格内有可以发现 Hank 的守卫,而有的方格内则是安全。输入第一行为 n(2 ≤n≤10 ),表示 n×n 的方格,接下来有 n 行,每行 n 个整数, 0 表示可以行走,1 表示不能行走,每个整数之间有个空格。第一行是一个正整数N(2<N ≤10),后面包含N*N行由0,1,2组成的矩阵,其中0表示可以走,1表示蝙蝠,2表示宝藏的位置。第一行是一个正整数N(2<N<6),后面包含N*N行由0,1,2组成的矩阵,其中0表示可以走,1表示蝙蝠,2表示宝藏的位置。
2024-12-13 14:29:10
619
原创 算法知识-14-递归
它将一个复杂的问题分解为一个与原问题相似但规模更小的子问题,通过不断地重复这个过程,直到子问题变得简单到可以直接求解。:将较大的数除以较小的数,将余数作为新的被除数,反复进行除法运算,直到余数为0时,上一次的除数即为最大公约数。cout << “进入下一层” << endl;if (i < 5)用来限制递进的条件,被称为递归出口,当i不再小于 5 时,递归停止。cout << “回归上一层” << endl;然后条件判断if (i < 5),如果条件成立,则递归调用fun()函数。
2024-11-28 17:06:23
538
原创 算法知识-13-链表
小鹿想输入一些整数数字,输入-1停止输入。在输入一个数字n,统计在这些数字中,n出现了多少次。删除含有数字n的结点(1<n≤5),从链表首结点依次输出链表中的数据。小童想输入一些数字,输入-1停止输入。共2行,第一行,一些整数数字,最后一个数字为-1。第二行,一个整数n,表示要查找的数字。一个节点两部分内容,那我们就要想到,一个元素,多种属性,这不就是结构体了。从首结点依次输出链表中的数据,数字之间空格分隔。从首结点依次输出链表中的数据,数字之间空格分隔。一行,一些整数数字,最后一个数字为-1。
2024-11-21 19:06:55
331
原创 算法知识-12-指针
之后,凡是来到 101 号房子的人,看到的都是这本新的魔法书,而房子的编号 101 始终没有改变。这张图给大家说明了,每个元素的地址都是独一无二的,就如同凭借一个地址只能定位到一个特定的位置。所以,我们常常借助指针来修改值,一旦某个地址中的值被修改,那么凡是使用这个地址获取值的操作,所得到的值都会相应发生变化。这就如同在 C++ 中,通过指针修改了某个地址中的值,使用这个地址获取值的操作都会得到修改后的新值,而地址本身保持不变。传指针调用:将变量的地址传递给函数,函数内部通过指针可以修改外部变量的值。
2024-11-21 16:10:11
419
原创 算法知识-11-队列
童童所在的学校开始军训了,在军训的时候会选出一些标兵,作为队列的标尺,穿着军装拿着枪,很帅,童童也想当标兵,候选人很多,老师想到一个办法,假如有 M 个人选,每人一个编号分别为 1 ~ M。输入 n,输出每次扔掉的牌,以及最后剩下的牌 (3≤n≤100)。由于x>1,所以一定x<2x+1<3x+1,因此我们可以定义两个队列,分别存放2x+1和3x+1,每一次都取出其中小的那个,执行到第n次时就能得出第n小的数。共2行,第一行,一个整数n,表示有n张扑克牌(1<n<50),第二行,n张扑克牌。
2024-11-21 15:42:23
1545
原创 算法知识-枚举算法
在一个 n*n 的矩阵里,有若干个敌人,在矩阵中被安放了一颗地雷,但只能攻击地雷所在的行、列里的所有敌人,现在请你找到安放地雷的位置,计算清除的敌人数量。第一行一个正整数 n,接下来 n 行,每行 n 列,如果有敌人则用数字1表示,用数字2表示位置上没有敌人,0表示安放地雷的位置。枚举算法也称为穷举法,它的基本思想是将问题的所有可能解一一列举出来,然后逐个判断是否满足问题的条件,从而找出问题的解。一个直角三角形的两个直角边是a,b(a≤b),其斜边是c,且a,b,c 都是正整数。
2024-11-15 15:45:23
915
原创 基础知识-7-选择结构【if switch】
/1、接收输入的两个数字和一个字符int x, y;char c;//2、根据输入的运算符号,判断要进行哪种运算switch(c){break;break;break;break;break;return 0;
2024-10-31 18:22:41
828
原创 算法知识-10-栈
push():将元素压入栈顶。pop():弹出栈顶元素,但不返回该元素。top():获取栈顶元素,但不弹出。empty():判断栈是否为空。size():获取栈中元素的个数。pushpopgetTopclear**四、示例演示 **
2024-10-31 17:42:35
516
原创 2024 CSP考前-广搜【bfs】
童童知道一头牛的位置,想要抓住它。童童和牛都位于数轴上,童童起始位于点N(0<=N<=100000),牛位于点K(0<=K<=100000)。广度优先搜索(Breadth-First Search,简称 BFS)是一种用于遍历或搜索图或树结构的算法,我们本次的知识点用队列解决广搜问题。例如童童最开始位于5的位置,牛位于17的位置,童童可以先减1,乘2,乘2,最后加1,移动到牛的位置17。这是一个比较经典的模板题,通过细胞扩展,标记位置来实现搜索边界的问题。1、从X移动到X-1或X+1,每次移动花费一分钟。
2024-10-31 17:18:32
385
原创 基础知识-6-小小练习
请使用编程实现该游戏,输入一个字母,输出它的前一个字母,该字母,与它的后一个字母。若是,则输出"YES",若不是,则不输出任何内容。例1:字符’C’的ASCII值是67,'E’的ASCII值是69,相加之和为136,则输出"YES"。例2:字符’0’的ASCII值是48,'A’的ASCII值是65,相加之和为113,则无输出。编写程序,输入一个三位数和一个两位数,将两位数插入在三位数当中,形成一个新的五位数。编写程序,输入一个两位数和一个一位数,将一位数插在两位数之间,形成一个新的三位数。
2024-10-17 19:03:20
709
原创 基础知识-5- 比较运算符
如果骑车快,输出一行"Bike";如果走路快,输出一行"Walk";如果一样快,输出一行"All"。输入某人的身高(单位厘米)和体重(单位kg),判断是否为标准体重:标准体重=身高-110。如果输入的体重减去标准体重大于等于5,输出Fat,如果小于5,输出Normal。输出一行,如果骑车快,输出一行"Bike";如果一样快,输出一行"All"。如n是偶数,输出even。输出仅一行,如果n是奇数,输出odd;输入一行,包含一个整数,表示一次办事要行走的距离,单位为米。输入仅一行,一个整数n,1≤n≤100。
2024-10-17 18:48:18
444
原创 2024 CSP考前复习-防爆0
第 2 趟,在剩下的 [4,3,5,2] 中找第 2 小的元素,也就是 2,它在第 5 个位置,我们把它和第 2 个位置的 4 交换,数组就变成了 [1,2,3,5,4]。第 4 趟,在剩下的 [5,4] 中找第 4 小的元素,也就是 4,它在第 5 个位置,我们把它和第 4 个位置的 5 交换,数组就变成了 [1,2,3,4,5]。给定一个数列(a_1,a_2,……第 3 趟,在剩下的 [3,5,4] 中找第 3 小的元素,其实还是 3,它就在第 3 个位置,所以数组不变,还是 [1,2,3,5,4]。
2024-10-17 18:34:08
1924
原创 基础知识-4-整数与字符类型
(注意:输出的字母之间以空格分隔)①计算机中的基本符号,计算机只认识0或1,我们看到的符号都是0,1构成的,其中常见的英文字符与符号收录在ASCII码表【美国标准信息交换码】思路:通过观察’a’与’A’的ascii码的差值,我们知道差值为97-65–> 32 所以’a’-32可以变为对应的大写字母。小童打算编写一个程序来模拟这个比赛:输入一个字母(大写或小写),输出这个字母前面的2个字母和它后面的2个字母。输入一个字符,输出这个字符对应的上一项,上上一项,下一项,下下一项,需要输出的过程中,需要加上空格。
2024-09-26 14:44:43
776
原创 基础知识-3-表达式和算术运算符
请编写程序,输入一个两位数,将输入的两位数的十位和个位分离出来,并计算两个数字相加的结果。②然后将整数除以 10,去掉最后一位数字,继续进行下一轮循环,直到整数变为 0。在商店买了一个面包和一瓶牛奶,输入面包和牛奶的价钱,计算一共花了多少钱?编写一个程序,输入一个两位数,交换十位与个位上的数字,组成一个新的整数。输入一个三位整数,将这个整数倒过来,例如输入123,输出321。将百位、十位与个位上的数字倒过来,组成一个新的整数输出。交换十位与个位上的数字,组成一个新的整数输出。一个整数,面包和牛奶的总费用。
2024-09-26 14:08:42
368
原创 算法知识-9-大数的乘法
乘法中如果已知会有一个小整数参加运算,那么我们知道大整数中每个数乘以小整数,数字都不会很大,因此我们可以将小整数作为一个整体不断的与每一个大整数相乘,然后再相加求和,从而实现乘积。例如,最低位相乘的结果无需错位,次低位相乘的结果需要向左错位一位,以此类推。3.乘法过程中要加进位,将每次乘积存到一个数组中,不断错位然后求和,注意求和也会有进位。高精度乘法用于处理超出普通数据类型表示范围的大整数乘法运算。从两个数的最低位开始,逐位相乘,并将结果错位相加。在相加过程中,可能会产生进位,需要进行进位处理。
2024-09-24 19:30:20
622
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人