自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 堆排序

一.堆排序基本概念再了解堆排序之前,首先要明白堆是什么。 堆是具有下列性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆;或者每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆。 对于完全二叉树有些性质也要提前进行了解才能充分了解堆排序,这里就不再多说了。堆排序就是利用堆(假设为大顶堆)进行排序的方法,其思想分为两个部分:1.大顶堆的初始构建;2.将堆顶元素移除后,大顶堆的重建。二.具体实现堆排序的主要内容就是大顶堆的构建,无论是初始构建还是重构都是这一

2021-04-08 12:43:21 130

原创 数据结构--线性表

线性表:零个或多个数据元素的有序序列 从字面意思上来想,首先,它是有序的,那么就可以认为,每个元素之间是有序的,如果存在多个元素,那么第一个元素只有它的后继,最后一个元素只有它的前驱,而位于中间的元素,既有一个前驱也有一个后继,其次,它是序列,那么也就是说,它是有限的,如果它是无限的,你先问问你的内存答应吗。用图来表示大话,他就张这个样子n即为线性表的长度;线性表的顺序存储:顺序存储,指用一段连续的存储单元一次存储线性表的数据元素;如图所示:其实,说白了,就和咋们用的

2021-03-28 20:56:45 883 3

原创 一个简简单单的贪吃蛇(c语言)

在学习完c语言基础之后,我们就可以利用c语言来写一个小游戏----贪吃蛇下面为所需用到的头文件#include <stdio.h>#include <windows.h>#include <time.h>#include <conio.h>原理贪吃蛇无非就是在一个有限的地图上进行运动,通过到达一个特定地点(吃食物)来增加体型的游戏;首先,你进去得先有个场啊,不然在哪跑呢(地图初始化);有场地了,肯定得有蛇啊,不然玩啥呢(蛇的初始化);再

2021-03-14 20:41:16 3152 12

原创 动态规划---01背包/完全背包

上个博客说道动态规划的引入,今天看一下动态规划的一个分支,01背包;01背包问题为什么,要叫他01背包呢,顾名思义,他的状态只有0或者1两种状态;也就是,拿与不拿;国际惯例,用一道题来说明;洛谷P1048----采药现在他需要知道,到底采哪种药,会使得价值最高;假设,我们现在按照题目的样例来想;现在我们可用的时间是70;左边这一列表示不同药采的时间,上边这一行表示背包大小;首先第一行,由于71>70所以说,不管哪个状态下,我们采药的价值都是0;接着看第二行,刚开始的时候,背包重

2021-02-27 20:17:33 1406 7

原创 动态规划入门

首先用最经典的一道题来引入动态规划动态规划(dynamic programming)请看下面这个题一个十分漂亮的数字三角形;求哪条路径能使得各个数字的和最大;如果我们只是单纯的贪心,即每次选择最大值走,那么结果就是7+8+1+7+5=28;但是,7+3+8+7+5这条路径等于三十30;显然,不能使用贪心的思想;这时候,就需要使用动态规划的思想;主要思想:将问题可以看为多个相同的小问题,寻找最优子结构,利用局部最优解推导出整体最优解;这个类似于完全二叉树的东西,每一个父节点都有两个子节

2021-02-27 19:11:13 3001 7

原创 新生赛(待拟定)

第一题考查结构体排序,懒人必备 algorithm 头文件中的sort函数,而且默认就是升序,直接上这里我用c++写的#include<cstdio>#include<algorithm>#include<string>using namespace std;struct student{ int num; char name[103];} stu[1000002];int com(const student& x, const stud

2020-12-28 19:12:25 283

原创 广度优先遍历(BFS)

接着上上次说,有深搜,肯定就有广搜。可以这样想,dfs(深搜)就是像是把一条路走到底,而bfs(广搜)与它刚好相反,就像是大面积同时遍历;通常,我们会构建队列,将每次搜索的结果进行临时保存,待到下一步进行结束后,将之前的结果出队。以洛谷的一个题为例题目描述有一个n*m的棋盘(1<n,m<=400),在某个点上有一个马,要求你计算出马到达棋盘上任意一个点最少要走几步输入格式一行四个数据,棋盘的大小和马的坐标输出格式一个n*m的矩阵,代表马到达某个点最少要走几步(左对齐,宽5格,

2020-12-22 21:32:22 306

原创 大数加法

就像小学的数学运算题一样,遇到10就进1;but 这次,咋们用的是字符数组,而不是整形数组了为啥?(char一个字节,int4个,你说用哪个)老规矩,先上图两个大数我们可以用字符数组来保存,然后在数组中逐位进行相加,再判断该位相加后是否需要进位,为了方便计算,我们将数字的低位放在数组的前面,高位放在后面。#include<stdio.h>#include<string.h> #define MAX 1000 // 大数的最大位数 int Addition

2020-12-20 21:32:01 202 2

原创 深度优化搜素(dfs)

导引如果我们想输出一个数的全排列,eg:1,2,3 的全排列那么就有123,132,213,231,312,321,这六种。那如何用代码实现呢?for (int a = 1; a <= 3; a++){ for (int b = 1; b <= 3; b++) { for(int c=1;c<=3;c++) if (a != b && a != c && b != c) { printf("%d%d%d", a, b,

2020-12-13 20:07:44 1970 9

原创 汉诺塔问题

问题导引:一.起源:汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。二.抽象为数学问题:如下图所示,从左到右有A、B、C三根柱子,其中A柱子上面有从小叠到大的n个圆盘,现要求将A柱子上的圆盘移到C柱子上去,期间只有一个原则:一次只能移到一个盘子且大盘子不能在小盘子上

2020-11-30 23:04:06 739

原创 字符串查找

字符串查找子字符串(KMP)高中我们都学过蛋白质的合成,就像这个,是不是又想起被生物支配的恐惧了。![而KMP和这个类似。](https://img-blog.csdnimg.cn/20201126220625584.png#pic_center)他们都采用向前推进的方式来查找是不是这个“碱基对”相互匹配。高中我们都学过蛋白质的合成,就像这个,是不是又想起被生物支配的恐惧了。他们都采用向前推进的方式来查找是不是这个“碱基对”相互匹配。假定被查找的字符串为P[i],需查找的字符串为S[j]。直接上图最开

2020-11-26 22:31:03 454 3

空空如也

空空如也

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

TA关注的人

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