- 博客(138)
- 收藏
- 关注
原创 51单片机的中断系统
CPU 执行现行程序的过程中,出现某些急需处理的异常情况或特殊请求,CPU暂时中止现行程序,而转去对异常情况或特殊请求进行处理,处理完毕后再返回现行程序断点处,继续执行原程序。void 函数名(void) interrupt n using m {中断函数内容 //尽量精简 }编译器会把该函数转化为中断函数,表示中断源编号为n,中断源对应一个中断入口地址,而中断入口地址的内容为跳转指令,转入本函数。using m用于指定本函数内部使用的工作寄存器组,m取值为0~3。该修饰符可省略,由编译器自动分配。
2023-04-25 23:51:07 4036 1
原创 streamlit实现冒泡排序可视化
基于 Python的web应用程序,只需要几行代码使用库组件构建可视化应用程序。streamlit 每次点击按钮都会重新执行渲染,这里用session保存数据。可视化图表、按钮、提示行、会话状态简单开发了一个冒泡排序可视化,效果如下。
2023-04-22 23:37:26 635
原创 streamlit (python构建web可视化框架)笔记
对数据可视化渲染,表格、地图、折线图等方法,以及一些。页面需要的组件,侧边栏,多页展示的用法。,使用命令行运行在浏览器上。创建一个python文件。,新文件夹一定取名字为。
2023-04-20 21:39:15 7304 1
原创 51单片机定时器与计数器
显然一次定时达不到 1s,需要多次定时,每次定时溢出需要处理一些系列操作将带来误差,所以尽可能减少溢出次数,选择工作方式1,计时。定时和计数的本质都是对脉冲信号计数,只不过是计数信号来源不同。定时脉冲来源于内部机器脉冲,一次脉冲时间固定,可以用来定时。计数初值分别在加载到TL和TH中,当计数溢出时,不需要软件重新赋初值,由。,功能为启动方式,工作于计数还是定时,计数器模式。如机器周期为1us,计数1000次,定时时间为1ms。工作方式1,16位定时/计数寄存器,最长定时时间。,方式1与方式0工作原理类似。
2023-04-18 22:31:06 4546 1
原创 51单片机入门
C51定义一个变量的格式如下数据类型 [存储类型] 变量名表,其中数据类型与存储类型可以调换,存储类型可以缺省。//定义无符号整数 unsigned char bdata value;//定义无符号字符 value,定义在片内RAM位寻址区为了提高执行效率和资源利用率,在程序运行期间根据数据的不同采用不同的方法进行处理,需要将数据定义为不同的类型。
2023-04-18 22:30:35 1204
原创 【图论-最小生成树】洛谷官方题单刷题总结
#最小生成树无向图 G=(V,E) n个顶点,m条边 使用图中有的边,将所有顶点连起来(n个顶点,则需要n-1条边)这个子图称为生成树,而使用的边的权值之和最小的子图称为最小生成树。kruskal 算法(加边法)step1.将所有的边按照权值排序(生成树中的两个端点或者两个连通分量之间,一定是通过存在且权值最小的边相连)**step2** 所有的点作为单独的集合(一个点是一个集合)(并查集初始化)**step3** 将通过边连接各集合,最终的生成树即所有点都在一个集合中。选择加入新的边(已排序即
2022-03-22 18:10:07 695
原创 排序刷题总结
文章目录一、程序设计中常用算法插入排序冒泡排序快速排序选择排序堆排序归并排序二、排序算法应用离散化中位数第k大数逆序对一、程序设计中常用算法洛谷排序题这个题目是排序的模板题,对于复杂度O(n^2)的排序算法,可以过三个样例,其余TLE,对于复杂度稳定在O(nlogn)的排序算法,才会AC。插入排序思想史,遍历数组中的每一个数a[i],i之前的是有序的,i之后的是无序的,a[i]寻找合适的位置插入有序的序列中。插入排序就是不断的将有序合并无序的过程。{2,4,5} a[i]=3 { 10,1,
2022-03-22 18:05:36 1097
原创 动态规划刷题总结
动态规划基础问题动态规划是优化的暴力,决策结果构成状态空间。动态规划的状态空间的遍历就是一张有向无环图,当前状态递推其后状态。当某一个状态确定后,不再受其后状态影响。题目实现代码简单,难点在于状态表示、决策的状态转移方程构造保证无后效性且合理,有时边界处理不当容易出错。在做题时可以输出状态空间验证决策是否正确。最长上升序列LIS && 最长不增序列洛谷导弹拦截理解题目求解的是 最长不增序列&& 最长上升序列LIS#include<bits/stdc++.h&
2022-03-22 18:04:47 202
原创 【图论-最短路】洛谷官方题单刷题总结
图论图在线生成器图论题目,数据量是选择算法的重要依据。一、图的存储不同问题使用的存储方式不同,比如区分有向图和无向图,顶点数是否多,图是否稠密等。邻接矩阵二维数组保存图 ,行数i与列数j是否有通路、权值大小。int graph[NUM][NUM];//初始化//有向图//无向图适用于顶点数较少,稠密图邻接表1.数组模拟#include<bits/stdc++.h>using namespace std;#define NUM 10010int next_[NU
2022-03-20 15:44:46 2077 1
原创 【搜索】洛谷官方题单刷题总结~递归与枚举~DFS~BFS
文章目录递归与排列1.排列型枚举2.实现指数型枚举3.递归实现组合型枚举DFS深度优先搜索BFS广度优先搜索递归与排列1.排列型枚举洛谷-全排列按照字典序输出自然数 1 到 n 所有不重复的排列,即 n 的全排列,要求所产生的任一数字序列中不允许出现重复的数字。#include<bits/stdc++.h>using namespace std;int a[10],v[10];int n;void dfs(int x){ if(x==n+1){ for(
2022-03-20 15:31:13 1921
原创 【高精度】洛谷官方题单刷题总结~
什么是高精度?运算过程中,输入、中间结果、输出都有可能超过long long 的表示范围,如果进行加、乘操作,导致溢出,结果出错。problem A+B (0 < A, B < 10^500 )自然无法用long long计算在java中有大数的专属类,可以使用,如果水平高的话,也可以查看类源码学习一下实现。高精度加法实现高精度乘法实现其他题目阶乘之和麦森数 高精度+快速幂...
2022-03-07 20:17:30 857
原创 【字符串算法】刷题总结
----字符串一、c++字符串基本操作相关博客输入与输出char s1[100],s2[1001000];int l1,l2;scanf("%s",s1);//输入 遇到回车结束l1=strlen(s1);//获取长度string s1;cin>>s1;//遇到换行或者回车结束cin.get();//从指定的输入流中提取一个字符(包括空白字符,空格、换行、tab 等),函数的返回值就是读入的字符getline(cin,s2);//获取一行,遇到回车结束字符串函数(str
2022-02-27 16:48:19 607
原创 USACO 回文质数
题目:回文质数题目描述给定a,b(1<a,b<10,000,000,000)请求出所有在这两个数范围内,既是回文又是质数的数字。题目思路因为范围过于大,如果遍历范围内的每一个数字,判定是否为质数?是否为回文?复杂度过高。问题是缩小范围。首先,位数是偶数的回文数字必是11的倍数(除11本身)(例如 2112=11*192),所以1000万到1亿之间不可能存在回文质数,将范围缩小至1000万。很多选择枚举范围的做法,这里写一下自己想的生成回文,比如数字b翻转过来是d,那么可以生成三类回
2022-02-22 20:55:16 286
原创 Codeforces Round #771 (Div. 2) D.Big Brush(DFS、贪心)
[传送门](Problem - D - Codeforces)题目大意在n * m的网格中,每次使用刷子可以填充2 * 2的格子相同颜色(颜色通过数字表示,不同数字标识不同颜色),给定最终成果,是否能在n*m步填充该网格,求解步骤。解题思路填充的最后一步一定是完整的2 * 2的格子(绿色格子),而且这个2 * 2的格子 可能覆盖了其他2 * 2的格子,使其他仅最终显示三块,两块(兰色格子)或者一块。所以解题关键是逆推填涂的过程,也就是消去颜色。具体代码#include <iostr
2022-02-15 19:43:45 437
原创 中国疫情数据可视化(AJAX+Echarts)
大三实训项目部分内容(疫情数据可视化)一、EchartsEchart是js实现的可视化图表库,有丰富的图表展示,包括折线图、扇形图等图表,以及地图的特殊图表,非常简单且实用。简单使用引入echart.js,可以使用CDN或者在官网下载js包。...
2021-06-16 16:20:44 4873 1
原创 21_蓝桥杯_java_B组_D题(货物摆放)
D、货物摆放【问题描述】小蓝有一个超大的仓库,可以摆放很多货物。现在,小蓝有 n 箱货物要摆放在仓库,每箱货物都是规则的正方体。小蓝规定了长、宽、高三个互相垂直的方向,每箱货物的边都必须严格平行于长、宽、高。小蓝希望所有的货物最终摆成一个大的立方体。即在长、宽、高的方向上分别堆 L、W、H 的货物,满足 n = L × W × H。给定 n,请问有多少种堆放货物的方案满足要求。例如,当 n = 4 时,有以下 6 种方案:1×1×4、1×2×2、1×4×1、2×1×2、 2 × 2 × 1
2021-04-20 23:49:29 1250
原创 Codeforces Round #615 (Div. 3)
先写个总结吧,这次失误太多。第一次wa,看错了题目,第二次少加判断,第三、四次真的是智障。E题已经有思路了但是没有时间了,下次一定要调整好状态,避免不必要的失误。好困啊,明天补题,加油!!!Codeforces Round #615 (Div. 3)...
2020-01-23 00:49:34 218
原创 Codeforces Round #614 (Div. 2)D题(模拟、思维转换)
D题思路:玩家从原点移动到n个目标点,最优的是进入一个点然后依次访问编号小于它的点,或者依次访问编号大于它的点,就是进入一个目标点后递增或者递减的访问各个目标点。原因:设目标点0,1,2,3 如果访问2之后访问1,在访问3,那么访问依次1,2,3一定比这种方案节省时间。问题转化为从那一个点进入,递增还递减依次访问直到时间结束。有从一点a有序访问到终点,与终点到a点路径相同。所以...
2020-01-20 13:38:06 198
原创 Codeforces Round #614 (Div. 2)题解 (AConneR and the A.R.C. Markland-N)(B. JOE is on TV!)(C. NEKO's M)
A题思路:这道题是问在一人在s层楼,每层楼都有餐厅,但是有一些关门了,所以他不得不去其他楼层就餐。给出已关门的餐厅问他至少需要爬几层楼才能就餐。因为关门的餐厅的个数不超过1000个,所以他往上或者往下走1000层一定有答案,就是没有关门的。注意不要越界。方法:因为n楼层数太大,无法使用标记数组,可以使用map来O(log n )的复杂度来求解该层楼餐厅是否关闭。代码:...
2020-01-20 00:23:49 297
原创 归并排序求解逆序对数
逆序对定义逆序对就是对于i<j且a[i]>a[j],这样的数对在序列中的个数。求解方法· 归并排序是采用分治的思想划分数列,然后将两路有序的数列合并。通过划分和合并的递归调用来完成排序。在合并的过程中,两个数列中的元素的相对位置不会发生改变(这里只是前后关系)。而且如果后一个数列B中某个元素b在需要先放入(优先于前一个数列A数列元素a),则a在b的前面,但是b小于a这样就会产...
2020-01-19 16:55:14 448
原创 Codeforces Round #612 (Div. 1)A题(线性DP)
Codeforces Round #612 (Div. 1)A题思路:题意为在数组元素为0的地方填入1~n中未填入的数字,且计算填后的复杂度(复杂度为相邻两个数奇偶性不同则其复杂度加一)。本题可以使用贪心去做,DP更容易想。当前位置的状态只与前一个的位置有关,当前位置为0,需要填入数字。 ...
2020-01-17 20:20:47 209
原创 Educational Codeforces Round 80 (Rated for Div. 2)
A题(简单数学题)思路:任务完成两种方式:1.不优化任务需要几天就几天完成2.优化x天,总共需要 x+d/(x+1)当可用的天数大于等于任务的天数时,直接不需要优化就可以完成。当可用的天数小于任务的天数时,需要进行优化,可能最优的优化也无法完成。need=x+d/(x+1) 两边同时对x进行求导need'=1-d/(x+1)^2给定的数据范围内,可知函数先减后增,ne...
2020-01-16 16:00:10 159
原创 组合数求解
一、组合数定义从n个不同元素中取出m个元素的个数C(n,m)=n! / m!*(n−m)!二、组合数性质C(n,m)=C(n,n-m) C(n,m)=C(n−1,m)+C(n−1,m-1) m/n*C(n,m)=C(n−1,m-1) C(m,m)+C(m+1,m)+……+C(n,m)=C(n+1,m+1)三、如何求组合数呢杨辉三角解释:第i+1行第j+...
2020-01-16 13:01:17 1047
原创 JAVA---异常处理
java异常处理异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的。常见的异常: ……用户输入了非法数据。-要打开的文件不存在。-网络通信时连接中断,或者JVM内存溢出。...
2020-01-01 11:32:51 115
原创 数据结构——树(链式存储上各种操作的实现)
树的相关实现代码树的遍历树的链式存储树的创建——扩展前序和前序和中序生成树的高度、叶子节点的个数#include<bits/stdc++.h>using namespace std;struct Node{ char data; Node *lchild,*rchild;};//数据结构:树//实现 1、扩展树初始化一棵树//2、前中后遍历/...
2019-12-26 19:33:03 262
原创 排序算法汇总
一、冒泡排序算法思想:每次将剩余的最大的关键码,逐步上升放在最后一个位置,类似于冒泡。#include<bits/stdc++.h>using namespace std;#define MAX 1001int n,a[MAX];void BubbleSort(){ for(int i=1;i<=n-1;i++){ for(int j=1;j...
2019-12-20 16:44:50 97
原创 HDU1005(Number Sequence)矩阵快速幂
题目:f(1)=f(2)= 1,f(n)=A * f(n-1)+B * f(n-2)求解f(n)?思路:快速幂求解,构造矩阵 0 B 1 A#include<iostream>#include<cstdio>#include<cstring>#define ll long longusing namespace std;#de...
2019-12-18 01:00:03 112
原创 七夕节H1215(数论素数、质因数、正约数)
Problem Description 七夕节那天,月老来到数字王国,他在城门上贴了一张告示,并且和数字王国的人们说:"你们想知道你们的另一半是谁吗?那就按照告示上的方法去找吧!"人们纷纷来到告示前,都想知道谁才是自己的另一半.另一半就是其所有正约数的和。数字N的因子就是所有比N小又能被N整除的所有正整数,如12的因子有1,2,3,4,6.你想知道你的另一半吗?Input输入数据的第一行是...
2019-12-17 11:59:30 196
原创 欧拉函数与原根POJ1284
原根:原根定义:设m是正整数,a是整数,若a模m的阶等于φ(m),则称a为模m的一个原根。性质:定理1:如果p有原根,则它恰有φ(φ§)个不同的原根(无论p是否为素数都适用)POJ1284题目大意:求一个奇素数的原根的个数,直接通过性质1求解φ(φ§)=φ(p-1)#include<iostream>#include<cstdio>using namespac...
2019-12-14 22:42:42 208
原创 第一次打DIV3 codeforces #605D题(线性DP)
Remove One Element题目:找出一个序列的最长上升子序列,要求连续,可以从原序列中删除一个或者不删。思路:连续是本题的突破点,但是删除一个或者不删是本题的难点。用DP[i][0_1] 二维数组第二维表示是否为第i个最优的,是否删除过,对于删除过的不能再删,没有删过的可以采取最优的进行最大化。#include<bits/stdc++.h>using nam...
2019-12-13 00:10:40 388
原创 飞行员兄弟
飞行员兄弟“飞行员兄弟”这个游戏,需要玩家顺利的打开一个拥有16个把手的冰箱。已知每个把手可以处于以下两种状态之一:打开或关闭。只有当所有把手都打开时,冰箱才会打开。把手可以表示为一个4х4的矩阵,您可以改变任何一个位置[i,j]上把手的状态。但是,这也会使得第i行和第j列上的所有把手的状态也随着改变。请你求出打开冰箱所需的切换把手的次数最小值是多少。输入格式输入一共包含四行,每行...
2019-12-11 23:55:28 124
原创 POJ1061青蛙约会问题(扩展欧几里得应用)
问题:在一个环中,两只青蛙在不同的坐标 x,y,青蛙每次跳跃长度分别为 n,m,在给定环长度L下,两只青蛙是否跳跃相同次数后再同一点(约会成功)。输入只包括一行5个整数x,y,m,n,L,其中x≠y < 2000000000,0 < m、n < 2000000000,0 < L < 2100000000。输出可以的话输出跳跃的次数,否则输出“Impossib...
2019-12-03 21:08:09 334
原创 计算树的节点、高度
实现· 1.采用二叉链表的方式进行存储。· 2.构造一个二叉树类· 3.统计树的高度· 4.二叉树左右子树的交换·#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;struct Node...
2019-12-02 21:52:57 767
原创 二分查找
二分查找又称折半查找,是在有序序列中寻找的log的算法。两种方式二分。while(l<r){ mid=(l+r)>>1; if(a[mid]<val){ l=mid+1; } else { r=mid; } } cout<...
2019-12-01 23:21:48 80
原创 顺序二叉树实现
实现原理:数组下标的2倍为其左儿子,其2倍加一为其右儿子。通过拓展前序序列来输入树。#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;char a[100001];int n;void pre(int p)...
2019-12-01 23:13:53 155
原创 二叉树的实现+遍历实现
通过拓展前序序列可以确定唯一的二叉树,通过递归来实现二叉树。#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>using namespace std;struct Node{ char data; Node *lchild,*rchi...
2019-12-01 23:11:32 86
原创 斐波那契数列(非递归高数值计算+数论-矩阵快速幂)
在斐波那契数列中,Fib0=0,Fib1=1,Fibn=Fibn−1+Fibn−2(n>1)给定整数n,求Fibnmod10000输入格式输入包含多组测试用例。每个测试用例占一行,包含一个整数n。当输入用例n=-1时,表示输入终止,且该用例无需处理。输出格式每个测试用例输出一个整数表示结果。每个结果占一行。数据范围0≤n≤2∗109输入样例:09999999999...
2019-12-01 22:42:12 298
原创 字符串
字符串存储一、串的逻辑结构1、串:零个或多个字符组成的有限序列。 串长度:串中所包含的字符个数。 空串:长度为0的串,记为:" "。2、非空串通常记为: S=" s1 s2 …… sn " 其中:S是串名,双引号是定界符,双引号引起来的部分是串值 ,si(1≤i≤n)是一个任意字符。3、子串:串中任意个连续的字符组成的子序列。 主串:包含子串的串。 子串的位置:子串的...
2019-12-01 11:26:26 201
原创 质数距离(POJ2689)
题目给定两个整数L和U,你需要在闭区间[L,U]内找到距离最接近的两个相邻质数C1和C2(即C2-C1是最小的),如果存在相同距离的其他相邻质数对,则输出第一对。同时,你还需要找到距离最远的两个相邻质数D1和D2(即D1-D2是最大的),如果存在相同距离的其他相邻质数对,则输出第一对。输入格式每行输入两个整数L和U,其中L和U的差值不会超过1000000。输出格式对于每个L和U ,输出一...
2019-12-01 11:25:54 608
原创 数论总结——最大公约数
——最大公约数就是两个自然数同时能被整除的最大的自然数数为两个数的最大公约数。或者说两个自然数共同的最大的约数。先堆上无脑暴力int gcd0(int a,int b){ int minn=min(a,b); for(int i=minn;i>=1;i--){ if((a%i==0)&&(b%i==0)) return i; }}...
2019-11-29 22:14:20 773
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人