- 博客(31)
- 资源 (1)
- 问答 (6)
- 收藏
- 关注
原创 KMP详解
KMP匹配算法应用环境:有一个文本串S,和一个模式串P,现在要判断S中是否有和P匹配的子串,并查找P在S中的位置,怎么解决呢?暴力算法思路假设现在文本串S匹配到 i 位置,模式串P匹配到 j 位置,则有:如果当前字符匹配成功(即S[i] == P[j]),则i++,j++,继续匹配下一个字符;如果匹配失败(即S[i]! = P[j]),令i = i - j + 1,j = 0,即每次匹配失败时,i 回溯到上次开始匹配的下一个位置,j 被置为0。s[N],p[M];for(int i=1;
2022-05-14 12:31:09
273
原创 python合成gif动图
python合成gif动图注意图片路径用的processon做的图片,以单链表删除结点为例程序运行图片import imageioimport os#### 图片路径root_path = 'C:\\Users\\win10\\Desktop\\test\\'image_list = os.listdir(root_path)#获得该文件夹所有文件名print(image_list)#输出为列表格式#合成图片路径for i in range(len(image_list)):
2022-04-19 22:51:24
1512
原创 蓝桥杯练习-蛇形矩阵
蛇形矩阵题目蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。输出对于每一组数据,输出一个N行的蛇形矩阵。两组输出之间不要额外的空行。矩阵三角中同一行的数字用一个空格分开。行尾不要多余的空格。案例样例输入5样例输出1 3 6 10 152 5 9 144 8 137 1211分析从上图可以分析,黄色代表两数之差,设一个数字是i行j列的话,首先确定每行的第一个数字;可以知道第i行的首位数字:num=i-1+a,a是上一行首位数字接着确定每行后面数字的
2022-01-25 16:12:15
570
原创 字符串逆序输出和TOM数
Tom数题目正整数的各位数字之和被Tom称为Tom数。求输入数(<2^32)的Tom数!输入:每行一个整数(<2^32).输出:每行一个输出,对应该数的各位数之和.分析本题可以用输入整数取余来求每个数字的数字和,但我觉得通过字符串来求是最容易的#include<stdio.h>#include<string.h>int main(){ int sum; char s[11]; while(~scanf("%s",&a
2022-01-24 16:00:03
429
原创 蓝桥杯练习-印章
印章题目:共有n种图案的印章,每种图案的出现概率相同。小A买了m张印章,求小A集齐n种印章的概率分析:这是动态分析;题目说了小A买了m张,要凑齐n种,那么我们就设:a[i] [j]表示买 i 张凑齐 j 种印章的概率。题目中有 n 种印章, 每种概率是 1/n;先来看i<j的时候:因为买 i 张最多只能凑齐 i 种,所以这种情况概率为0再来看j=1的时候:i=1:dp[i] [1]表示的意思是买 i 张凑齐 1 种的概率,很明显 i == 1 && j
2022-01-22 21:59:09
775
原创 蓝桥杯练习--分糖果
分糖果题目有n个小朋友围坐成一圈。老师给每个小朋友随机发偶数个糖果,然后进行下面的游戏:每个小朋友都把自己的糖果分一半给左手边的孩子。一轮分糖后,拥有奇数颗糖的孩子由老师补给1个糖果,从而变成偶数。反复进行这个游戏,直到所有小朋友的糖果数都相同为止。你的任务是预测在已知的初始糖果情形下,老师一共需要补发多少个糖果。输入程序首先读入一个整数N(2< N< 100),表示小朋友的人数。接着是一行用空格分开的N个偶数(每个偶数不大于1000,不小于2)输出程序首先读入一
2022-01-20 20:57:18
793
原创 蓝桥杯-聪明的美食家
聪明的美食家题目如果有人认为吃东西只需要嘴巴,那就错了。都知道舌头有这么一个特性,“由简入奢易,由奢如简难”(据好事者考究,此规律也适合许多其他情况)。具体而言,如果是甜食,当你吃的食物不如前面刚吃过的东西甜,就很不爽了。大宝是一个聪明的美食家,当然深谙此道。一次他来到某小吃一条街,准备从街的一头吃到另一头。为了吃得爽,他大费周章,得到了各种食物的“美味度”。他拒绝不爽的经历,不走回头路而且还要爽歪歪(爽的次数尽量多)。输入两行数据。 第一行为一个整数n,表示小吃街上小吃的数量 第二行为n
2022-01-19 21:32:01
348
原创 蓝桥杯练习数对
数对题目:编写一个程序,该程序从用户读入一个整数,然后列出所有的数对,每个数对的乘积即为该数。输出:输出有若干行,每一行是一个乘法式子。(注意:运算符号与数字之间有一个空格)分析这相当于枚举的思想,直接两层循环加一个判断:判断i*j==n是否成立#include<stdio.h>int main(){ int n,i,j; scanf("%d",&n); for(i=1;i<=n;i++) { for(j=1;j&
2022-01-18 21:07:11
278
原创 蓝桥杯练习-DNA图形
画DNA题目:小强从小就喜欢生命科学,他总是好奇花草鸟兽从哪里来的。终于, 小强上中学了,接触到了神圣的名词–DNA.它有一个双螺旋的结构。输入输入包含多组测试数据。第一个整数N(N<=15),N表示组数,每组数据包含两个整数a,b。a表示一个单位的DNA串的行数,a为奇数且 3<=a<=39。b表示重复度(1<=b<=20)。样例输入23 15 4样例输出X X XX XX X X X X X XX X X X X X
2022-01-17 21:31:28
672
原创 蓝桥杯练习-母牛数量问题
母牛的故事题目:有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛?分析由题目可以以下数量关系年份123456789数量123469131928可以看的关系f(n)=f(n-1)+f(n-3)可以递归函数来求解输入输入数据由多个测试实例组成,每个测试实例占一行,包括一个整数n(0<n<55),n的含义如题目中描述。n=0表示输入数据的结束,
2022-01-16 19:59:25
196
原创 爬楼梯求解
爬楼梯题目:假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1. 1 阶 + 1 阶2. 2 阶输入: 3输出: 3解释: 有三种方法可以爬到楼顶。1. 1 阶 + 1 阶 + 1 阶2. 1 阶 + 2 阶3. 2 阶 + 1 阶分析这是动态分析设i为第i层,则a[i]可以表示为第i层爬楼梯的方法数目,则a[
2022-01-13 17:08:28
141
原创 蓝桥杯 拿金币
1、拿金币题目: 有一个N x N的方格,每一个格子都有一些金币,只要站在格子里就能拿到里面的金币。你站在最左上角的格子里,每次可以从一个格子走到它右边或下边的格子里。请问如何走才能拿到最多的金币。分析该题目考察动态规划,我们可以就利用题中的二维数组。(i,j)代表坐标,x[i][j]代表到达坐标(i,j)时的最优解,即拿到最多的金币。.找到数组元素之间的关系。上个数字与本次数字的关系意思就是在n*n的位置中,每个位置为累加最大值的和在下面的循环中,if条件语句是来判断第一层和第一列,而其他就
2022-01-09 15:43:49
465
原创 Fibonacci数列求余
题目:Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。输入n值输出一行,包含一个整数,表示Fn除以10007的余数在本题中,答案是要求Fn除以10007的余数,因此我们只要能算出这个余数即可,而不需要先计算出Fn的准确值,再将计算的结果除以10007取余数,直接计算余数往往比先算出原数再取余简单。分析在循环中:f3=f1+f2直接计算余数通过f3求除以10007来求解余数#in
2022-01-08 20:36:47
543
原创 输出01数字,字母图形
1、字母图形题目:利用字母可以组成一些美丽的图形,下面给出了一个例子:ABCDEFGBABCDEFCBABCDEDCBABCDEDCBABC这是一个5行7列的图形,请找出这个图形的规律,并输出一个n行m列的图形。输出n行,每个m个字符,为你的图形。分析 观察图像,可以看出每行的规律类似DCBABCD这样的规律 A在ASCLL码值对应的数值位65,大循环是控制行,第一个循环是输出类似CBA这样的字母 第二个循环是输出ABC..这样的字母。 循环
2022-01-07 10:50:45
3454
原创 查找整数练习
1、查找整数2、数字特征查找整数题目:给出一个包含n个整数的数列,问整数a在数列中的第一次出现是第几个。输入格式: 第一行包含一个整数n。 第二行包含n个非负整数,为给定的数列,数列中的每个数都不大于10000。 第三行包含一个整数a,为待查找的数。 输入格式 第一行包含一个整数n。 第二行包含n个非负整数,为给定的数列,数列中的每个数都不大于10000。 第三行包含一个整数a,为待查找的数。 分析 查找整数首先用if条件语句判断..
2022-01-06 20:39:53
398
原创 python文件读写、模块
目录编码二进制编码表encode()和decode()格式文件读写开-open()模式汇总读-read()直接读取按行读取写-write()'w'模式'a'模式关-close()关键字withsplit():分开字符串join():合并字符串模块import语句调用模块import...as..from … import … 语句if __name__ == '__main__'scv模块格式读数据写数据编码二进制用来存放一位0或1,就是计算机里最小的存储单位,叫做【位】,也叫【比特】(bit)。我
2021-12-01 15:51:03
1410
原创 结构体常见操作
结构体类型数组只能将相同类型的数据放在一起,结构体是可以将不同类型的数据放在一起声明//结构体模板struct student { long studentID;//定义学号 char studentName;//姓名 char studentSex;//性别 int yearBirth;//出生年 int scoreMath;//数学成绩 int scoreEnglish;//英语成绩
2021-11-26 13:16:45
747
原创 C语言常见指针
指针内存编址:每个字节都有唯一的编号 (地址)地址为无符号整数,16进制指针不是地址,指针变量的值是一个地址可以保存变量、数组、字符串的首地址,保存函数的入口定义基类型 *变量;基类型:指针变量指向的数据类型%p:输出变量地址指针变量使用前必须初始化不知道指向那里,就指向NULL初始化:基类型 *变量1=&变量2基类型 *变量1;变量1=&变量2#include <stdio.h>#include <stdlib
2021-11-24 21:23:57
581
原创 数组、排序算法与字符串
一维素组定义:基类型 a[b];a为数组名;b为数组长度,数组下标从0开始,取不到b不能用变量来定义数组长度:int a[n];使用宏定义可以:int a[N];N已定义占内存字节数:数组长度*sizeof(基类型)数组初始化int a[5]={60,1,4,1};//花括号元素个数不能超过数组长度int a[]={1,2,3}//根据花括号元素个数来确定数组大小通过**memset(a,0,sizeof(a));**初始化sizeof(a)获取数组a所占内存字节数记得开
2021-11-24 21:17:37
340
原创 函数、嵌套和递归
函数函数定义函数:构成C语言的基本模块函数返回值类型 函数名(形参){ 函数体; return 返回值;}int GetMax(int x,int y)//形参也是局部变量{ int result;//局部变量,只能在函数体内访问啊它 if(x>y) { result = x; } else { result = y; } return result;//函数的出口,只能返回一个值;要与返回值类型一样}void GetMax(void)//表示无
2021-11-24 10:41:57
1753
原创 条件语句与循环语句
关系运算符与逻辑运算符关系运算符逻辑运算符&&与:当2个操作数都为真结果为真||或:两个操作数至少一个为真结果为真!非:操作数为真结果为假短路特性表达式的值可先有计算的左操作数的值推导出来,就不会计算右操作数的值可以使除0运算不发生优先级逻辑非 > 算数运算符 > 关系运算符 > 逻辑与 > 逻辑或也可以通过添加小括号提高优先级条件语句单分支选择结构(if语句)结构
2021-11-23 15:12:09
522
原创 常见算数运算
算数运算算数优先级求余运算–%判断某数是否被整除操作数是整数常见数学运算注:要在开头加#include<math.h>随机函数rand()生成一个在0~32767之间的随机数问题:如何生成一个指定范围(如1~100)内的随机数?* magic = rand() % 100 ; //0~99赋值表达式变量=表达式;变量1=变量2=表达式;变量1运算符op=表达式;类型 变量=表达式增1和减1运算符(++,–)前缀与后缀区别m=n++;
2021-11-22 21:39:38
538
原创 C语言数据类型
变量定义(菜鸟教程)基本组成要素自然语言程序设计语言字字母,数字、标识符词或词组关键字、标识符、常量句子或段落语句篇章程序关键字也称保留字,是C语言预先定义的、具有特殊意义的单词;例如if、long、for等标识符大小写字母,数字和下划线构成的一个字符序列系统预定义标识符用户自定义标识符:用来标识变量名、符号常量名、数组名、函数名等命名规则首字符必须是字母或下划线见名知意,不要使用汉语拼音不能与关键字及系统预定义的标识符相同
2021-11-22 21:28:59
965
原创 python基础3----函数与类
模块time模块——时间import time #调用time模块time.sleep(secs) #使用time模块下面的sleep()函数,括号里填的是间隔的秒数(seconds,简称secs)#time.sleep(1.5)就表示停留1.5秒再运行后续代码random模块——随机生成数字random.randint(a,b)生成一个指定范围[a,b]内的整数import random # 调用random模块a = random.random() # 随机从0-
2021-11-21 22:12:21
450
原创 python基础2
2、基础进阶列表列表名=[数据1,数据2,..,数据n]list1 = ['小明',18,1.70]print(list1)列表提取单个元素偏移量:对列表元素的位置编号。列表的偏移量从0开始计算(从左到右)格式列表名[索引]students = ['小明','小红','小刚']#小明,小红,小刚的偏移量分别是0,1,2print(students[0])print(students[2]) 提取多个元素用冒号切片冒号:左右空,取到头;左取右不取列表名[a:b]l
2021-11-21 22:08:08
364
原创 python基础1
输入print()函数输出几种形式不带引号让计算机读懂括号⾥的内容,打印最终的结果print(1+1)输出:2单引号计算机⽆须理解,原样复述引号中的内容print('秋水共长天一色')双引号作⽤和单引号⼀样;当打印内容中有单引号时,可以使⽤双引号print("Let's go") print('Let\'s go') #也可以使用转义字符+单引号(\')来实现单引号三引号带三引号,实现换⾏print('''python小课最好的python课程''')
2021-11-21 22:02:23
468
原创 C语言输入与输出问题
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar
2021-11-21 17:02:10
542
51单片机 交通灯 课程设计
2022-01-14
linux中运行yolov5模型报错
2023-04-21
80端口不能用,为什么
2022-05-31
在ubuntu编译yaml-cpp,报错
2022-04-14
devc++不能编译运行
2022-04-05
顺序表静态分配问题求解
2022-01-13
结构体函数指针怎么指向一个指针
2022-01-13
TA创建的收藏夹 TA关注的收藏夹
TA关注的人