自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 海龟作图的简单介绍

画树的顺序:先画树干,再画右树枝,最后画左树枝。

2022-11-22 09:53:35 595 1

原创 Python之基本扩展模块

datetime.date() #处理日期(年、月、日)datetime.time() #处理时间(时、分、秒和毫秒)datetime.datetime() #处理日期+时间datetime.timedelta() #处理时段(时间间隔)时间戳是指格林威治时间1970年01月01日00时00分00秒到现在的总秒数。timetuple函数:将日期转化为struct_time格式time.mktime函数:返回用秒数来表示时间的浮点数。

2022-11-21 14:36:30 1032 2

原创 Python之函数详解

语法格式:def 函数名([参数列表] :函数体注意:圆括号后的冒号不能少,圆括号内的参数是形参列表,就算没有接收任何参数,也必须保留一对空的圆括号。函数体中可以使用return语句返回值。return语句可以有多条,可以出现在函数体的任何位置。调用函数的语法格式:函数名([实参列表])

2022-11-17 10:48:21 1835

原创 Python之字典与集合的基本操作

1.1 空字典与字典更新定义空字典即将一对空的大括号”{}“赋给字典变量。语法格式:字典名【键】 = 值语法格式:字典名【键】 = 值可以看出修改条目和添加条目是同一种操作,所以用于修改条目时,指定的键必须对应已存在的条目,否则就是添加条目。另外需要注意的是,修改条目实质上是修改与键关联的值,而具有唯一性的键是不可以被修改的。1.2 删除字典条目删除字典条目的方法有很多,但是都是通过键来指定要删除的条目。语法格式:del 字典名【键】语法格式:字典名.pop(键,默认值)

2022-11-09 15:52:09 1839

原创 Python之列表和元组的基本操作(超详细)

列表中的元素是有序存放的,因此可以直接通过索引来访问列表元素。同时列表中的元素是可变的。即不仅列表中的元素值可以修改,列表中的元素个数也是可变的。因此列表中的元素支持修改、添加和删除操作。1.1 修改元素格式:列表名【索引】= 新值1.2 增加元素1.2.1 append()方法append()方法是列表专属的方法之一,用来在指定的列表尾部,即当前最后一个元素的后面,追加指定新元素。语法格式:列表名.append(新元素)insert()方法允许为新增加的元素指定插入的位置,其中位置用索引表示。

2022-10-16 10:10:22 5977

原创 Python之字符串的基本操作(很详细)

Python语言中的字符串包括两种序号体系:正向递增序号和反向递减序号。具体语法格式为:【头下标:尾下标】 ,这种访问方式称之为“切片”。但注意这是左闭右开的区间。在切片方式中,若头下标缺省,表示从字符串的开始取子串;若尾下标缺省,表示取到字符串的最后一个字符;若头下标和尾下标都缺省,则取整个字符串。字符串切片还可以设置取子字符串的顺序,格式为【头下标:尾下标:步长】。当步长大于0的时候,从左往右取字符;当步长小于0的时候,从右往左取字符。

2022-10-15 10:51:37 32394 6

原创 拼点游戏(类似于田忌赛马)

描述C和S两位同学一起玩拼点游戏。有一堆白色卡牌和一堆蓝色卡牌,每张卡牌上写了一个整数点数。C随机抽取n张白色卡牌,S随机抽取n张蓝色卡牌,他们进行n回合拼点,每次两人各出一张卡牌,点数大者获得三颗巧克力,小者获得一颗巧克力,如果点数相同,每人各得二颗巧克力,使用过的卡牌不得重复使用。已知C和S取到的卡牌点数,请编程计算S最多和最少能得到多少颗巧克力。输入输入包含多组测试数据。每组测试数据的第一行是一个整数n(1...

2022-07-06 23:00:20 941

原创 后缀表达式求值结果最大

给定 N个加号、M个减号以及 N+M+1 个整数 A1,A2,⋅⋅⋅,AN+M+1,小明想知道在所有由这 N个加号、M 个减号以及 N+M+1个整数凑出的合法的后缀表达式中,结果最大的是哪一个?请你输出这个最大的结果。例如使用 123+−,则 “23+1−” 这个后缀表达式结果是 4,是最大的。输入格式第一行包含两个整数 N 和 M。第二行包含 N+M+1 个整数 A1,A2,⋅⋅⋅,AN+M+1输出格式输出一个整数,代表答案。数据范围0≤N,M≤105−109≤Ai≤109输入样例:输出样

2022-06-29 23:14:05 230

原创 数据结构—排序算法汇总(插入排序,交换排序,选择排序,二路归并排序,基数排序)

在没有特殊说明的情况下,默认排序结果是升序。 对于直接插入排序,设A[n]是一个有n个数的待排序数组,现假设要排序的位置是i,其执行的过程为(第0号位置不适用,从1号开始):1、首先保存第i号元素,把第i号元素放在第0号位置,充当哨兵的作用,这样可以减少循环条件,相对来说会优化一点点;2、1— i-1位置的元素都已排好序,将第i个位置的元素与前i-1个元素依次比较,直到找到小于等于自己的元素停止,假设位置是k。3、将第k+1—i-1位置上的所有元素后移,空出的第k+1个位置放第i个元素。具体代码:空间

2022-06-28 00:07:26 594

原创 【毕业季_进击的技术er】大四在兵荒马乱中如期而至,迷茫在跌跌撞撞中戛然而止。而我的梦想从这里开始!

大四在兵荒马乱中如期而至,迷茫在跌跌撞撞中戛然而止。而我的梦想从这里开始!我是2019级计算机科学与技术专业的一名准大四学生,我就读的学校是一所普普通通的双非院校,虽然这是一所普通的一本院校,但是我却在这里尝试了一种不一样的人生,开始了曾经从未想过的专业学习生涯。如果说计算机是一条平行线的一边,那在进入大学之前的我就是这条平行线的另一边,从未想过,我会与计算机会有交集。但也正是因为这些阴差阳错,让我接触到了计算机,了解到了程序,爱上了算法。在我的大学三年中,我从刚开始的C语言,C++,到Java的基础学习,

2022-06-25 16:54:44 2770 2

原创 二叉排序树的查找、插入、创建和删除

二叉排序树的特性:1、若左子树非空,则左子树上所有结点的值均小于根节点的值;2、若右子树非空,则右子树上所有结点的值均大于根节点的值;3、左右子树又分别是一颗二叉排序树;综上,左子树结点的值......

2022-06-23 21:14:24 4741

原创 数据结构—查找(顺序查找和折半查找)

2、顺序查找的主要代码其时间复杂度为O(n);其对于顺序表和链表都适用。4、折半查找的主要代码(对于升序的顺序表)其时间复杂度为O(logn);但是其只能对于有序的顺序表,因为链表不具备随机存储的特性。折半查找的过程是一棵平衡二叉树。如果当前Low和high之间的元素个数是奇数个,则左右两边元素个数相等,否则就是左半部分比右半部分少一个元素(针对于mid=(low+high)/2,也即是向下取整时,若向上取整,则相反)。...

2022-06-22 22:02:21 2773

原创 拓扑排序及逆拓扑排序

拓扑排序其实就是对有向无环图的顶点的一种排序,每个顶点出现且只出现一次。对一个AOV网进行拓扑排序的方法:1、从AOV网中选择一个入度为0的顶点并输出;2、从网中删除该顶点和所有以它为起点的有向边;3、重复1和2直到当前的AOV网为空或当前网中不存在入度为0的顶点为止;该算法中假设使用邻接表作为存储结构:时间复杂度为:O(|V|+|E|);若采用邻接矩阵存储时,其时间复杂度为O(|V|^2);祖先结点的DFS函数结束时间大于子孙结点的DFS函数结束时间,利用DFS求出各顶点结束时间,对于拓扑排序,就是

2022-06-20 23:22:24 7487 8

原创 图的应用—求解最短路径(BFS、Dijkstra和Floyd算法)

BFS算法虽然可以求解最短路径问题,但是需要注意的是该算法只能求解非带权图的单源最短路径问题,或者说带权值相同且为1的图单源最短路径问题。2、图的邻接表存储结构定义3、BFS算法求解非带权图的单源最短路径由于BFS算法的应用局限,所以对于带权值(正值)的图, 我们需要求解其单源最短路径的时候,就可以使用Dijkstra算法。单源最短路径是指:图中某一顶点到其他各顶点的最短路径。Dijsktra算法是典型的单源最短路径算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点

2022-06-20 00:35:00 4051

原创 数据结构—图的遍历(BFS、DFS)

图的遍历算法可以用来判断图的连通性。对于无向图来说,访问图中所有顶点所需调用BFS/DFS的次数就是连通分量数。但是对于有向图来说,具体问题需要具体分析,对于强连通图,只需调用一次,但是对于非强连通图就要具体分析。 图的广度优先遍历算法思想和二叉树的层次遍历算法思想几乎是相同的,需要一个辅助队列实现。时间复杂度:邻接表:O(|V|+|E|);邻接矩阵:O(|V|^2);空间复杂度为:O(|V|);主要来自于辅助队列由广度优先遍历得到的遍历树称为:广度优先遍生成树。对于非连通图的广度优先遍历可得到广度优

2022-06-18 23:58:40 1001

原创 哈夫曼树的建立及编码

初始有n个结点,建成的哈夫曼树将会有2*n-1个结点,每次构造都选择两棵权值最小的新节点作为孩子结点。

2022-06-14 23:06:03 352

原创 数据结构复习—并查集

并查集是一种简单的集合表示,支持以下三种操作:(1)初始化;(2)合并不相交的集合;(3)查找集合s中x所在的子集合并返回子集合的根节点;2、并查集的find操作3、并查集的未优化Union操作由于未对并查集进行优化操作,所以经过分析,该算法的最坏时间复杂度与树高有关,为O(n);对并查集进行优化,尽量不要使树变得“瘦高”,所以选择将小树合并到大树下,将根节点对应的数组中存储该棵树的总结点树的相反数即可。这时,利用数学归纳法可知,树的高度.........

2022-06-13 00:11:56 262

原创 数据结构—线索二叉树

无论哪一种序列线索化都不要忘记处理最后一个结点的rchild和rtag;注意先序线索化的死循环问题,当ltag==0的时候才能对左子树先序线索化。1.2 中序线索二叉树的构造2、先序线索化 特别注意在先序线索化的过程中,当访问完根节点开始访问其左子树的时候,要判断其左孩子是不是前驱线索,避免出现死循环。4、中序线索二叉树寻找中序后继 对不含头结点的中序线索二叉树的遍历:5、中序线索二叉树中寻找中序前驱结点 对不含头结点的线索二叉树逆序遍

2022-06-08 23:46:41 394

原创 数据结构-树与二叉树的递归与非递归遍历

二、二叉树的遍历 2.1递归方法2.2 非递归方法 后序遍历的一个基本应用:求树的深度2.3 层次遍历

2022-06-08 00:03:54 117

原创 数据结构之栈和队列的基本操作

1、顺序栈的栈顶初始化为-1时的基本操作:#define Maxsize 50typedef struct{ ElemType data[Maxsize]; //存放栈中元素 int top; //栈顶指针 }SqStack; //初始化操作void InitStack(SqStack &S){ S.top=-1; } //判断栈是否为空 bool StackEmpty(SqStack S) { if(S.top==-1) return

2022-05-30 23:42:35 755

原创 数据结构复习——循环链表

1、循环单链表的相关操作:typedef struct LNode{ ElemType data; struct LNode *next;}LNode,*LinkList;//初始化一个循环单链表bool InitLinkList(LinkList &L){ L=(LinkList)malloc(sizeof(LNode)); if(L==NULL) return false; L->next=L; return true; } //判断循环单链表是否为

2022-05-27 23:55:07 76

原创 双链表的基本操作(带头结点)

1、双链表的结点表示:typedef struct DNode{ ElemType data; struct DNode *prior,*next;}DNode,*DLinklist; 2、双链表的初始化操作://初始化双链表 bool InitDLinkList(DLinklist &L){ L=(DNode *)malloc(sizeof(DNode)); //分配一个头结点 if(L==NULL) //内存不足,申请失败 return false;

2022-05-23 23:46:24 936

原创 单链表的按序号查找结点和按位查找结点

1、按序号查找结点,从单链表的第一个结点出发,直到找到第i个结点,否则返回最后一个结点指针域NULL;LinkList GetElem(LinkList L,int i){ int j=1; if(i==0) //如果i==0,则返回头结点 return L; if(i<1) //i给的值无效 { return NULL; } LinkList p=L->next; //第一个结点指针赋给p while(p&&j<i) {

2022-05-20 23:40:10 3617 3

原创 2018年蓝桥杯省赛B组题解

A、第几天题目描述2000年的1月1日,是那一年的第1天。那么,2000年的5月4日,是那一年的第几天?输出格式输出一个整数表示答案解题思路:手算也可以,但我是编程计算的,时间方面我觉得编程序可能更快代码:#include<bits/stdc++.h>using namespace std;int m[]={0,31,29,31,30,31,30};int main(){ int ans=0; for(int i=1;i<=5;i

2022-05-15 23:34:44 146

原创 数据结构复习—王道课后习题(线性表)

一、

2022-05-14 00:03:08 2188

原创 (数据结构复习)顺序表的基本操作补充—查找

1、按位查找typedef struct{ int *elem; int length; int listsize;}SqList;int GetElem(SqList L,int i,int &e) //在线性表L中查找第i个数据元素,并把其值返回给e { e=L.elem[i-1]; return e;}该算法的时间复杂度为O(1);其原因就在于顺序表是顺序存储,是一种随机存储的存储结构,它最主要的特点是随机访问,即通过首地址和元素序号可在常数时间内找到指定元素

2022-05-12 23:56:44 1048

原创 数据结构复习(严蔚敏数据结构)—(第二章线性表(一))

2.1 线性表的类型定义1、一个线性表是n个数据元素的有限序列。在稍复杂的线性表中,一个数据元素可以由若干个数据项组成,在这种情况下,常把数据元素称为记录,含有大量记录的线性表称为文件。2、同一线性表中的元素必定具有相同特性,即属于同一数据对象,相邻数据元素之间存在着序偶关系。将线性表记为:(a1,…,ai-1,ai,ai+1,…,an),则表中ai-1领先于ai,ai领先于ai+1,称ai-1是ai的直接前驱元素,ai+1是ai的直接后继元素。当i=1,2,…,n-1时,ai有且仅有一个直接后

2022-05-09 23:43:56 523

原创 蓝桥杯算法训练—粘木棍

资源限制内存限制:256.0MB C/C++时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s问题描述  有N根木棍,需要将其粘贴成M个长木棍,使得最长的和最短的的差距最小。输入格式  第一行两个整数N,M。  一行N个整数,表示木棍的长度。输出格式  一行一个整数,表示最小的差距样例输入3 210 20 40样例输出10数据规模和约定  N, M<=7参考了网上大佬的题解,自己写的时候没注意到一些细节,导致超

2022-04-05 23:54:06 661

原创 差分与前缀和

差分与前缀和是一对互逆的操作,该算法常用于求解区间问题,差分主要用于多次对区间进行加减操作的问题,而前缀和主要用于多次对区间进行求和的问题。差分当对某些不确定的区间多次进行加减操作时,如果每次都是对这些区间遍历操作,那么时间复杂度是O(nm)。而如果我们采用差分法来求解,就是先构造一个差分数组,然后转化为对区间端点的操作,这样的话时间复杂度就转化为O(n)。但是需要注意的是,差分法只能用于多次对区间进行加减的运算,不能用于乘除运算。差分算法解题步骤:1、构造差分数组:b[1]=a[1],

2022-04-05 18:44:59 3252 1

原创 算法训练—娜神平衡

问题描述  娜娜是一个特别可爱的女孩子,作为学神的她最近在情感方面出现了一点点小问题。  她暗恋的琦琦是一名学霸,他只喜欢长得漂亮和学习很好的女生。  娜娜学习确实很神,但是她在琦琦面前却总是表现不出平时的神力。  琦琦感受到了娜娜对他的爱,但是他还是觉得娜娜的学习并不是特别好,于是他出了一道题给娜娜。  “娜娜,我们之间的关系需要在不断深入的同时保持一定的平衡,不可以你总是强势或者我总是弱势。”  琦琦给了娜娜一些两两不等的数,希望娜娜能把这些数分成两组A和B,满足以下条件:  1:每一次

2022-03-28 11:55:26 508

原创 数据结构复习

第一章 绪论(重点在于时间和空间复杂度的计算)1.1数据结构的基本概念1.1.1 数据数据是信息的载体,是描述客观事物属性的数、字符以及所有能输入到计算机中并被计算机程序识别和处理的符号的集合。数据是计算机程序加工的原料。1.1.2数据元素数据元素是数据的基本单位,一个数据元素可有若干个数据项组成,数据项是构成数据元素的不可分割的最小单位 。1.1.3数据对象数据对象是具有相同性质的数据元素的集合,是数据的一个子集。1.1.4数据类型概念:数据类型是一个值的集合和....

2022-03-26 20:29:04 588

原创 2019年蓝桥杯省赛真题题解B组

A、数列求值题目描述给定数列1, 1, 1, 3, 5, 9, 17, …,从第4 项开始,每项都是前3 项的和。求第20190324 项的最后4 位数字。代码:#include <bits/stdc++.h>using namespace std;int main(){ long long int f1=1; long long int f2=1; long long int f3=1; long long int f=0; f

2022-03-24 15:30:33 1632

原创 codeforces #778 C.Alice and the Cake

Alice has a cake, and she is going to cut it. She will perform the following operationn−1times: choose a piece of the cake (initially, the cake is all one piece) with weightw≥2and cut it into two smaller pieces of weight⌊w2⌋and⌈w2⌉(⌊x⌋and⌈x⌉deno...

2022-03-24 09:46:20 505

原创 哈夫曼—谈判

题目描述在很久很久以前,有nn个部落居住在平原上,依次编号为1到n。第i个部落的人数为ti​。有一年发生了灾荒。年轻的政治家小蓝想要说服所有部落一同应对灾荒,他能通过谈判来说服部落进行联合。每次谈判,小蓝只能邀请两个部落参加,花费的金币数量为两个部落的人数之和,谈判的效果是两个部落联合成一个部落(人数为原来两个部落的人数之和)。输入描述输入的第一行包含一个整数n,表示部落的数量。第二行包含n个正整数,依次表示每个部落的人数。其中,1≤n≤1000,1≤ti​≤10......

2022-03-21 16:05:55 1378

原创 最小字符串(贪心+排序)

问题描述  给定一些字符串(只包含小写字母),要求将他们串起来构成一个字典序最小的字符串。输入格式  第一行T,表示有T组数据。  接下来T组数据  每组第一行一个正整数n,表示字符串个数。  接下来n行,每行一个字符串(长度不超过100)。输出格式  T行,每行一个字符串。样例输入13abc样例输出abc数据规模和约定  T<=7000,n<=100;解题思路:这题其实就是排序,不过这个排序不是字符串a和b之间的排序,而是a+b

2022-03-20 15:56:20 405

原创 排座椅(贪心+排序)

解题思路:想让更少的人交头接耳,就必须保证一条过道可以尽可能多的分隔开两个说话的人,所以

2022-03-20 15:13:44 1252 1

原创 2021蓝桥杯省赛B组(C++)题解

A:卡片题目描述小蓝有很多数字卡片,每张卡片上都是数字0 到9。小蓝准备用这些卡片来拼一些数,他想从1 开始拼出正整数,每拼一个,就保存起来,卡片就不能用来拼其它数了。小蓝想知道自己能从1 拼到多少。例如,当小蓝有30 张卡片,其中0 到9 各3 张,则小蓝可以拼出1 到10,但是拼11 时卡片1 已经只有一张了,不够拼出11。现在小蓝手里有0 到9 的卡片各2021 张,共20210 张,请问小蓝可以从1拼到多少?解题思路既然是填空题就直接暴力求解,主要最后的结果-1,因为刚好到该

2022-03-19 21:23:53 5175

原创 小B的宿舍(贪心)

题目描述小B的宿舍楼沿着走廊南北向的两边各有200个房间,如下所示:[房间1][房间3][房间5][房间7][房间9 ]...[房间399]---------------------------------------------- 走廊----------------------------------------------[房间2][房间4][房间6][房间8][房间10]...[房间400]最近,由于转专业和专业分流的原因,宿舍将迎..

2022-03-19 17:02:54 295

原创 分巧克力——整数二分

题目描述儿童节那天有 K 位小朋友到小明家做客。小明拿出了珍藏的巧克力招待小朋友们。小明一共有 N 块巧克力,其中第 i 块是 Hi*Wi 的方格组成的长方形。为了公平起见,小明需要从这 N 块巧克力中切出 K 块巧克力分给小朋友们。切出的巧克力需要满足: 形状是正方形,边长是整数; 大小相同; 例如一块 6x5 的巧克力可以切出 6 块 2x2 的巧克力或者 2 块 3x3 的巧克力。当然小朋友们都希望得到的巧克力尽可能大,你能帮小明计算出最大的边长是多少么?输入描

2022-03-19 09:55:20 111

原创 排列型枚举(座次问题)

题目描述小 A 的学校,老师好不容易解决了蓝桥杯的报名问题,现在老师又犯愁了。现在有 N 位同学参加比赛,但是老师想给他们排座位,但是排列方式太多了。老师非常想弄明白最后的排座次的结果是什么样子的,到底有多少种结果。请设计一个程序帮助老师。最后输出各种情况的人名即可,一行一种情况,每种情况的名字按照报名即输入顺序排序。输入描述输入第一行包含一个整数 NN。接下来N行每行包含一个字符串Si​,表示人名。输出描述输出共若干行,每行输出各种情况的人名。一行一种情况...

2022-03-18 22:07:37 521

空空如也

空空如也

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

TA关注的人

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