- 博客(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
403
1
原创 python合成gif动图
python合成gif动图 注意图片路径 用的processon做的图片,以单链表删除结点为例 程序运行图片 import imageio import 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
1651
原创 蓝桥杯练习-蛇形矩阵
蛇形矩阵 题目 蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。 输出 对于每一组数据,输出一个N行的蛇形矩阵。两组输出之间不要额外的空行。矩阵三角中同一行的数字用一个空格分开。行尾不要多余的空格。 案例 样例输入 5 样例输出 1 3 6 10 15 2 5 9 14 4 8 13 7 12 11 分析 从上图可以分析,黄色代表两数之差,设一个数字是i行j列的话,首先确定每行的第一个数字;可以知道第i行的首位数字:num=i-1+a,a是上一行首位数字 接着确定每行后面数字的
2022-01-25 16:12:15
690
原创 字符串逆序输出和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
517
原创 蓝桥杯练习-印章
印章 题目:共有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
910
原创 蓝桥杯练习--分糖果
分糖果 题目 有n个小朋友围坐成一圈。老师给每个小朋友随机发偶数个糖果,然后进行下面的游戏: 每个小朋友都把自己的糖果分一半给左手边的孩子。 一轮分糖后,拥有奇数颗糖的孩子由老师补给1个糖果,从而变成偶数。 反复进行这个游戏,直到所有小朋友的糖果数都相同为止。 你的任务是预测在已知的初始糖果情形下,老师一共需要补发多少个糖果。 输入 程序首先读入一个整数N(2< N< 100),表示小朋友的人数。 接着是一行用空格分开的N个偶数(每个偶数不大于1000,不小于2) 输出 程序首先读入一
2022-01-20 20:57:18
965
原创 蓝桥杯-聪明的美食家
聪明的美食家 题目 如果有人认为吃东西只需要嘴巴,那就错了。 都知道舌头有这么一个特性,“由简入奢易,由奢如简难”(据好事者考究,此规律也适合许多其他情况)。具体而言,如果是甜食,当你吃的食物不如前面刚吃过的东西甜,就很不爽了。 大宝是一个聪明的美食家,当然深谙此道。一次他来到某小吃一条街,准备从街的一头吃到另一头。为了吃得爽,他大费周章,得到了各种食物的“美味度”。他拒绝不爽的经历,不走回头路而且还要爽歪歪(爽的次数尽量多)。 输入 两行数据。 第一行为一个整数n,表示小吃街上小吃的数量 第二行为n
2022-01-19 21:32:01
455
原创 蓝桥杯练习数对
数对 题目:编写一个程序,该程序从用户读入一个整数,然后列出所有的数对,每个数对的乘积即为该数。 输出:输出有若干行,每一行是一个乘法式子。(注意:运算符号与数字之间有一个空格) 分析 这相当于枚举的思想,直接两层循环加一个判断:判断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
370
原创 蓝桥杯练习-DNA图形
画DNA 题目:小强从小就喜欢生命科学,他总是好奇花草鸟兽从哪里来的。终于, 小强上中学了,接触到了神圣的名词–DNA.它有一个双螺旋的结构。 输入 输入包含多组测试数据。第一个整数N(N<=15),N表示组数,每组数据包含两个整数a,b。a表示一个单位的DNA串的行数,a为奇数且 3<=a<=39。b表示重复度(1<=b<=20)。 样例输入 2 3 1 5 4 样例输出 X X X X X X X X X X X X X X X X X X
2022-01-17 21:31:28
857
原创 蓝桥杯练习-母牛数量问题
母牛的故事 题目:有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛? 分析 由题目可以以下数量关系 年份 1 2 3 4 5 6 7 8 9 数量 1 2 3 4 6 9 13 19 28 可以看的关系f(n)=f(n-1)+f(n-3) 可以递归函数来求解 输入 输入数据由多个测试实例组成,每个测试实例占一行,包括一个整数n(0<n<55),n的含义如题目中描述。 n=0表示输入数据的结束,
2022-01-16 19:59:25
284
原创 爬楼梯求解
爬楼梯 题目:假设你正在爬楼梯。需要 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
199
原创 蓝桥杯 拿金币
1、拿金币 题目: 有一个N x N的方格,每一个格子都有一些金币,只要站在格子里就能拿到里面的金币。你站在最左上角的格子里,每次可以从一个格子走到它右边或下边的格子里。请问如何走才能拿到最多的金币。 分析 该题目考察动态规划,我们可以就利用题中的二维数组。(i,j)代表坐标,x[i][j]代表到达坐标(i,j)时的最优解,即拿到最多的金币。 .找到数组元素之间的关系。上个数字与本次数字的关系 意思就是在n*n的位置中,每个位置为累加最大值的和 在下面的循环中,if条件语句是来判断第一层和第一列,而其他就
2022-01-09 15:43:49
555
原创 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
649
原创 输出01数字,字母图形
1、字母图形 题目:利用字母可以组成一些美丽的图形,下面给出了一个例子: ABCDEFG BABCDEF CBABCDE DCBABCD EDCBABC 这是一个5行7列的图形,请找出这个图形的规律,并输出一个n行m列的图形。 输出n行,每个m个字符,为你的图形。 分析 观察图像,可以看出每行的规律类似DCBABCD这样的规律 A在ASCLL码值对应的数值位65,大循环是控制行,第一个循环是输出类似CBA这样的字母 第二个循环是输出ABC..这样的字母。 循环
2022-01-07 10:50:45
3674
原创 查找整数练习
1、查找整数 2、数字特征 查找整数 题目:给出一个包含n个整数的数列,问整数a在数列中的第一次出现是第几个。 输入格式: 第一行包含一个整数n。 第二行包含n个非负整数,为给定的数列,数列中的每个数都不大于10000。 第三行包含一个整数a,为待查找的数。 输入格式 第一行包含一个整数n。 第二行包含n个非负整数,为给定的数列,数列中的每个数都不大于10000。 第三行包含一个整数a,为待查找的数。 分析 查找整数首先用if条件语句判断..
2022-01-06 20:39:53
499
原创 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
1825
原创 结构体常见操作
结构体类型 数组只能将相同类型的数据放在一起,结构体是可以将不同类型的数据放在一起 声明 //结构体模板 struct student { long studentID;//定义学号 char studentName;//姓名 char studentSex;//性别 int yearBirth;//出生年 int scoreMath;//数学成绩 int scoreEnglish;//英语成绩
2021-11-26 13:16:45
1047
原创 C语言常见指针
指针 内存编址:每个字节都有唯一的编号 (地址) 地址为无符号整数,16进制 指针不是地址,指针变量的值是一个地址 可以保存变量、数组、字符串的首地址,保存函数的入口 定义 基类型 *变量; 基类型:指针变量指向的数据类型 %p:输出变量地址 指针变量使用前必须初始化 不知道指向那里,就指向NULL 初始化: 基类型 *变量1=&变量2 基类型 *变量1;变量1=&变量2 #include <stdio.h> #include <stdlib
2021-11-24 21:23:57
775
原创 数组、排序算法与字符串
一维素组 定义:基类型 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
454
原创 函数、嵌套和递归
函数 函数定义 函数:构成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
2187
原创 条件语句与循环语句
关系运算符与逻辑运算符 关系运算符 逻辑运算符 && 与:当2个操作数都为真结果为真 || 或:两个操作数至少一个为真结果为真 ! 非:操作数为真结果为假 短路特性 表达式的值可先有计算的左操作数的值推导出来,就不会计算右操作数的值 可以使除0运算不发生 优先级 逻辑非 > 算数运算符 > 关系运算符 > 逻辑与 > 逻辑或 也可以通过添加小括号提高优先级 条件语句 单分支选择结构(if语句) 结构
2021-11-23 15:12:09
916
原创 常见算数运算
算数运算 算数优先级 求余运算–% 判断某数是否被整除 操作数是整数 常见数学运算 注:要在开头加#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
733
原创 C语言数据类型
变量定义(菜鸟教程) 基本组成要素 自然语言 程序设计语言 字 字母,数字、标识符 词或词组 关键字、标识符、常量 句子或段落 语句 篇章 程序 关键字 也称保留字,是C语言预先定义的、具有特殊意义的单词;例如if、long、for等 标识符 大小写字母,数字和下划线构成的一个字符序列 系统预定义标识符 用户自定义标识符:用来标识变量名、符号常量名、数组名、函数名等 命名规则 首字符必须是字母或下划线 见名知意,不要使用汉语拼音 不能与关键字及系统预定义的标识符相同
2021-11-22 21:28:59
1341
原创 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
649
原创 python基础2
2、基础进阶 列表 列表名=[数据1,数据2,..,数据n] list1 = ['小明',18,1.70] print(list1) 列表提取单个元素 偏移量:对列表元素的位置编号。 列表的偏移量从0开始计算(从左到右) 格式 列表名[索引] students = ['小明','小红','小刚']#小明,小红,小刚的偏移量分别是0,1,2 print(students[0]) print(students[2]) 提取多个元素 用冒号切片 冒号:左右空,取到头;左取右不取 列表名[a:b] l
2021-11-21 22:08:08
488
原创 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
784
原创 C语言输入与输出问题
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar
2021-11-21 17:02:10
750
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关注的人
RSS订阅