自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

凌汐凡的博客

仅个人学习

  • 博客(32)
  • 收藏
  • 关注

原创 QT多次调用python脚本

QT多次调用python脚本,解决GIL冲突问题

2022-08-12 11:23:41 1077 1

原创 QT运行Python脚本

QT运行Python脚本教程以及遇到的坑

2022-08-11 16:48:26 3190

原创 Pycharm解决安装库报错报错Non-zero exit code (2)

Pycharm解决安装库报错报错Non-zero exit code (2)

2022-08-11 15:39:28 902 1

原创 树莓派安装运行qt5和Python

树莓派安装运行qt5和Python

2022-08-02 10:35:27 884

原创 Ubuntu下载软件包连接失败

ubuntu解决下载连接失败问题

2022-07-13 10:55:06 1522

原创 ESP32或esp8266串口不停输出复位信息

ESP32或esp8266串口不停输出复位信息,原因一般有两个1、供电问题芯片供电不足会让芯片一直复位,最好检查芯片的供电,有的芯片3.3V供电,有的需要5V2、内存问题部分函数例如定时器中断处理函数,外部中断处理函数等,需要加上ICACHE_RAM_ATTR属性,因为中断回调函数必须位于IRAM中,因为闪存在发生时可能处于其他操作的中间...

2022-03-24 20:50:04 2771

原创 qt做串口调试助手——界面响应篇

qt做串口调试助手想要做一个串口调试助手,实现上位机和下位机的通信只是最基础的一部分,后面的界面布局和功能响应也是需要技巧的。先放一个最终效果图,再讲实现串口的打开和关闭 global_port.setPortName(ui->comboVolt1->currentText());//设置端口号 if(global_port.open(QIODevice::ReadWrite))//打开串口函数,会返回一个bool值判断是否打开 {

2021-11-17 17:10:13 923 1

原创 qt做串口调试助手——通信收发篇

qt实现串口调试助手串口初始化串口调试助手的初始化,一般包括波特率、端口号、奇偶校验、数据位和停止位。如果最终需要将串口商业化,一般这些参数都会交给用户自定义,但我们写了自己用,且上位机和下位机同时开发,则除了端口号,其余参数都会在代码里面定义好。端口号一般采用自动扫描更新可用串口的方式,比直接列举COM1、COM2等要好很多。 //参数初始化 global_port.setBaudRate(QSerialPort::Baud115200); //波特率 global_port.set

2021-11-16 13:44:17 2191

原创 蓝桥杯赛前复习

pair用法:应用场景:主要是将两个数据合成一组数据,基础实现是结构体,可以直接使用成员变量头文件:#include <utility>构造:pair<T1, T2> p1;//T1,T2为数据类型,p1为变量名访问成员变量:p1.first;p1.second;简化:typedef pair<string,string> AuthorAuthor proust(“March”,“Proust”);全排列DFS实现//index:当前一共搜索index

2021-04-17 22:09:38 383 1

原创 高精度大数据 阶乘计算

高精度大数据 阶乘计算问题描述  输入一个正整数n,输出n!的值。  其中n!=123*…*n。算法描述  n!可能很大,而计算机能表示的整数范围有限,需要使用高精度计算的方法。使用一个数组A来表示一个大整数a,A[0]表示a的个位,A[1]表示a的十位,依次类推。  将a乘以一个整数k变为将数组A的每一个元素都乘以k,请注意处理相应的进位。  首先将a设为1,然后乘2,乘3,当乘到n时,即得到了n!的值。输入格式  输入包含一个正整数n,n<=1000。输出格式  输出n!的准

2021-03-18 19:50:16 335

转载 C++ map用法总结(按个人需求整理)

C++ map用法总结(按个人需求整理)头文件#include <map>定义map定义方法为map<key,values> a;其中key与values一一对应,可以通过key来查找其对应的values,key和values可以是任意类型的,按自己的需求定义,例如:map<string,int> s;当然这样的定义很长,我们可以重命名一下,然后定义就简单了:typedef map<string,map> maps;maps s;

2021-03-17 20:52:11 477

原创 试题 算法训练 方格取数

试题 算法训练 方格取数问题描述  设有NN的方格图(N<=10),我们将其中的某些方格中填入正整数,而其他的方格中则放入数字0。  某人从图的左上角的A 点(1,1)出发,可以向下行走,也可以向右走,直到到达右下角的B点(N,N)。在走过的路上,他可以取走方格中的数(取走后的方格中将变为数字0)。  此人从A点到B 点共走两次,试找出2条这样的路径,使得取得的数之和为最大。输入格式  输入的第一行为一个整数N(表示NN的方格图),接下来的每行有三个整数,前两个表示位置,第三个数为该位置上

2021-03-17 19:46:10 603 1

原创 算法训练 回文数

算法训练 回文数问题描述  若一个数(首位不为零)从左向右读与从右向左读都一样,我们就将其称之为回文数。  例如:给定一个10进制数56,将56加65(即把56从右向左读),得到121是一个回文数。又如:对于10进制数87:  STEP1:87+78 = 165 STEP2:165+561 = 726  STEP3:726+627 = 1353 STEP4:1353+3531 = 4884在这里的一步是指进行了一次N进制的加法,上例最少用了4步得到回文数4884。写一个程序,给定一个N(2&

2021-03-15 20:48:16 280

原创 算法训练 拦截导弹

算法训练 拦截导弹问题描述  某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国的导弹来袭。由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹。输入导弹依次飞来的高度(雷达给出的高度数据是不大于30000的正整数),计算这套系统最多能拦截多少导弹,如果要拦截所有导弹最少要配备多少套这种导弹拦截系统。输入格式  一行,为导弹依次飞来的高度输出格式

2021-03-15 11:43:08 232

原创 二叉树遍历以及求层数

二叉树遍历以及求层数#include <iostream>#include <algorithm>using namespace std;typedef struct Node{ int data; Node* lchild,* rchild;}Node;Node* createNode(int data)//创建根节点,同时令左右节点为null{ Node* temp = (Node*)malloc(sizeof(Node)); temp->data

2021-03-14 15:37:31 750

原创 动态规划—最优子结构

动态规划—最优子结构问题:算法训练 乘积最大 问题描述今年是国际数学联盟确定的“2000——世界数学年”,又恰逢我国著名数学家华罗庚先生诞辰90周年。在华罗庚先生的家乡江苏金坛,组织了一场别开生面的数学智力竞赛的活动,你的一个好朋友XZ也有幸得以参加。活动中,主持人给所有参加活动的选手出了这样一道题目:设有一个长度为N的数字串,要求选手使用K个乘号将它分成K+1个部分,找出一种分法,使得这K+1个部分的乘积能够为最大。同时,为了帮助选手能够正确理解题意,主持人还举了如下的一个例子:有一个数字串:

2021-03-14 15:02:59 1076

转载 看了必懂的并查集原理(转载)

看了必懂的并查集原理(转载)并查集是我暑假从高手那里学到的一招,觉得真是太精妙的设计了。以前我无法解决的一类问题竟然可以用如此简单高效的方法搞定。不分享出来真是对不起party了。(party:我靠,关我嘛事啊?我跟你很熟么?)首先在地图上给你若干个城镇,这些城镇都可以看作点,然后告诉你哪些对城镇之间是有道路直接相连的。最后要解决的是整幅图的连通性问题。比如随意给你两个点,让你判断它们是否连通,或者问你整幅图一共有几个连通分支,也就是被分成了几个互相独立的块。像畅通工程这题,问还需要修几条路,实质就是求

2021-03-13 19:37:57 95

原创 DFS解经典迷宫

DFS解经典迷宫题目:S是起点,G是终点,.是路径,#是墙输入mn表示墙的行列输入样例:5 5#S###…##.#.###…###…G##123456输出结果:5前面已经更新了如何用BFS求解经典迷宫,但是凡事能用BFS的题目,基本都能用DFS来解,下面放DFS求解经典迷宫的代码:#include <iostream>#include <queue>#include <algorithm>#include <cstring

2021-03-13 18:16:26 124

原创 BFS解经典迷宫问题

BFS解经典迷宫问题对于经典的迷宫问题,路径是没有权值不同之分的,对于这种问题,采用BFS更合适下面放题目:S是起点,G是终点,.是路径,#是墙输入mn表示墙的行列输入样例:5 5#S###..##.#.###..###..G##输出结果:5关于BFS,最近看了一个写的很好的博主,放上链接:图论(四)宽度优先搜索BFS按照这个思路,我的代码如下:#include <iostream>#include <queue>#include <algo

2021-03-12 21:08:30 195

原创 递归实现二叉树遍历

递归实现二叉树遍历#include <iostream>#include <algorithm>using namespace std;typedef struct Node{ int data; Node* lchild,* rchild;}Node;Node* createNode(int data)//创建根节点,同时令左右节点为null{ Node* temp = (Node*)malloc(sizeof(Node)); temp->data

2021-03-10 21:14:07 110

原创 分治算法——归并排序

分治算法——归并排序/*归并排序使用分治算法先将待排序数组一分为二,再分为四,再分为八...直到不可再分,然后逐渐的有序排序,每两个子序列之间合并排序特点:稳定,能够最大限度的按照输入的顺序排列 */ #include <iostream>using namespace std;void mergeArray(int s[],int begin,int end,int mid){ //临时创建一个数组,用于合并两个子序列 int* temp = new int[end-

2021-03-10 20:55:14 246

原创 冒泡排序+二分查找

冒泡排序+二分查找#include <iostream>#include <algorithm>using namespace std;int a[9] = {3,1,5,8,9,4,5,3,0};void output(int *a){ for(int* i = a;i<a+9;i++) { cout<<*i<<" "; } cout<<endl;}int findnum(int num){ int l

2021-03-10 19:57:17 207

原创 最长上升子序列(贪心+二分)

最长上升子序列(贪心+二分)最长上升子序列的求法,除了最朴素的动态规划外,还有利用贪心和二分法进行求解,其时间复杂度为O(nlogn),低于动态规划的时间复杂度O(n2),在蓝桥杯这种测试样例巨大的竞赛中,使用贪心+二分法可以有效避免超时原理对于一个数列a = {1,3,2,5,9,4,10},我们定义一个数组s和数组b,数组b用来存储可能的上升序列。s[i]表示长度为i的最长上升子序列的结尾元素,当然这个值越小越好,因为对于一个上升序列,结尾的值越小,越容易往后面添加值,这就是求解的一个贪心思想。

2021-03-09 18:16:06 649

转载 fill()函数参数:fill(first,last,val);

fill()函数参数:fill(first,last,val);// first 为容器的首迭代器,last为容器的末迭代器,val为将要替换的值。举例:int a[200];fill(a, a+100, 1);12注意:fill()中 ,它的原理是把那一块单元赋成指定的值,也就是说任何值都可以memset(),则是将s所指向的某一块内存中的每个字节的内容全部设置为ch指定的ASCII值,即0 、1...

2021-03-09 17:52:40 354

原创 最长上升子序列(lIS)

最长上升子序列(lIS)最长上升子序列一般有三种求解方法,分别是时间复杂度为O(n2)的动态规划求法,时间复杂度为O(nlogn)的贪心+二分法,以及时间复杂度为n(nlogn)的树状数组优化的动态规划(DP)动态规划根据动态规划的一般规则,我们若想知道长度为n的数列a[n]的最长上升子序列,可以根据前(n-1)个数列的最长上升子序列,再跟第n个数作比较,得到前n个数的最长上升子序列…以此列推,直至求得第一个数的最长上升子序列,当然LIS(1) = 1;下面开始动态规划五部曲:确定dp数组及其含义

2021-03-08 22:47:06 237

原创 算法提高 秘密行动

算法提高 秘密行动问题描述  小D接到一项任务,要求他爬到一座n层大厦的顶端与神秘人物会面。这座大厦有一个神奇的特点,每层的高度都不一样,同时,小D也拥有一项特殊能力,可以一次向上跳跃一层或两层,但是这项能力无法连续使用。已知向上1高度消耗的时间为1,跳跃不消耗时间。由于事态紧急,小D想知道他最少需要多少时间到达顶层。输入格式  第一行包含一个整数n,代表楼的高度。接下来n行每行一个整数ai,代表i层的楼层高度(ai <= 100)。输出格式  输出1行,包含一个整数,表示所需的最短时间

2021-03-03 16:39:50 225 1

原创 动态规划——一维dp数组与二维dp数组

动态规划——一维dp数组与二维dp数组对于二维dp数组,递推公式为:dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - weight[i]] + value[i]);其实可以发现如果把dp[i - 1]那一层拷贝到dp[i]上,表达式完全可以是:dp[i][j] = max(dp[i][j], dp[i][j - weight[i]] + value[i]);于其把dp[i - 1]这一层拷贝到dp[i]上,不如只用一个一维数组了,只用dp[j](一维数组,也可以理解

2021-03-01 10:00:40 13724 3

原创 动态规划学习记录

动态规划学习记录二维dp数组01背包使用二维dp数组dp[i][j],dp[i][j] 表示从下标为[0-i]的物品里任意取,放进容量为j的背包,价值总和最大是多少。那么可以有两个方向推出来dp[i][j]:放物品i,或者不放物品i1.由dp[i - 1][j]推出,即背包容量为j,里面不放物品i的最大价值,此时dp[i][j]就是dp[i - 1][j]2.由dp[i - 1][j - weight[i]]推出,dp[i - 1][j - weight[i]] 为背包容量为j - weight[

2021-02-28 13:09:13 66

原创 python安装pandas以及plotly

python安装pandas,plotly

2021-01-22 20:05:36 973

原创 无穷大inf = 0x3f3f3f3f

inf = 0x3f3f3f3finf = 0x3f3f3f3f在一般场合作为无穷大来使用,int类型真正的无穷大是 inf = 0x7fffffff(32_bit的最大值),它能够表示int的无穷大,但是当在它的基础上加上某个数的时候会变成负数。准确的说:inf = 0x7fffffff不满足“无穷大加上一个无穷大仍然是无穷大”所以我们引入 inf = 0x3f3f3f3f,它的准确值为10^9+,在一般场合下均可以作为一个无穷大使用,而inf+inf又不会超过int的范围,所以满足“无穷大加上一个

2021-01-10 10:44:20 1119

原创 数列排序(冒泡法)

冒泡法是一种简单易理解的数列排序,方法是从左到右依次进行两个元素的比较,每轮比较完之后,最大or最小的数就会出现在数组最右端,下一轮就可以不用比较最后一个数了,也就是说每轮比较次数都会递减。此外,当有n个数进行排序时,第一轮最多需要n-1次比较,例如当我们有十个数需要排序,第一轮比较九次就可以了。附上冒泡排序的代码:void sort(int *p,int n)//冒泡法排序 { int ...

2020-01-16 22:09:23 1302

原创 入门训练 Fibonacci数列

入门训练 Fibonacci数列问题描述Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。输入格式输入包含一个整数n。输出格式输出一行,包含一个整数,表示Fn除以10007的余数。说明:在本题中,答案是要求Fn除以10007的余数,因此我们只要能算出这个余数即可,而不需要先计...

2020-01-13 11:13:24 148

空空如也

空空如也

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

TA关注的人

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