二叉树的同构
关于二叉树的同构
一种可行的方法(基于数组的二叉树)
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105struct ArrTree { char data; int left; int right;}A1T[100], A2T[100];//bool check[100];//////////////////////////////////////////////////////////////////////////////////构建函数,基于数组的二叉树//////////////////////////*构建输入的例子:可以从根结点开始8A 1 2B 3 4C 5 -D - -E 6 -G ...
树的表示
链表实现
stDo.webp)
图中右下角的样式不统一,若统一为3项,则有大量空间浪费,不妨如此这般
左侧结点存储儿子,右侧结点存储兄弟
这样的表示方式为:二叉树
单调栈
帮助群友♂♂(AC),就是帮助自己
单调栈
单调递增栈:单调递增栈就是从栈底到栈顶数据是从小到大(一般)
单调递减栈:单调递减栈就是从栈底到栈顶数据是从大到小
(我们只会用到单调栈的一端)
E.g: 单调递增栈加入数据:::堆栈实现(栈顶为最大值)
1234567891011121314151617181920stack<int> st;//栈顶为最大值void _add(const int& x) { if (st.empty() || st.top() > x){ st.push(x); } else{ stack<int> tmp; while (!st.empty() && st.top() < x) { tmp.push(st.top()); st.pop(); } st.push(x); while (!tmp.empty()) { st.push(tmp.top()); tmp.pop(); ...
《树》
树(Tree)
n(n≥0)个结点构成的有限集合
n=0时,称为空树
对于任意一颗非空树,它具有以下性质:
树中有一个称为"根(root)"的特殊节点,用root表示
其余结点可分为m(m>0)个互不相交的有限集$T_1$ $T_2$…$T_m$,其中每个集合本身又是一棵树。称为原来树的"
子树(SubTree)"
子树不相交
除根节点外,每个结点有且仅有一个父结点
一棵N个结点的树有N-1条边
(树是保证所有结点连通的一种最小连通方式之一)
相关术语
结点的度 :结点的子树个数
树的度:树的所有结点中最大的度数
叶结点:度为0的点
父结点:有子树的结点是其子树的根结点的父结点
子结点:若A结点是B结点的父结点,则称B结点是A结点的子结点
兄弟结点:具有同一父结点的各结点彼此是兄弟结点
路径和路径长度:从结点$n_1$到$n_k$的路径为一个结点序列$n_1$,$n_2$,…,$n_k$,$n_i$是$n_i+1$的父结点。路径所包含边的个数为路径的长度
祖先结点(Ancestor):沿树根到某一结点路径上的所有结点都是这个 ...
大杂烩
[TOC]
动态规划
P8784 蓝桥杯 2022 省 B - 积木画
1234567891011121314151617181920const int mod = 1000000007;int f[6] = { 0,1,2,5 };signed main() { ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); int n; cin >> n; for (int i = 4; i <= n; i++) { f[i] = (2 * f[i-1] % mod + f[i-3] % mod) % mod; } cout << f[n]; return 0;}
P8786 蓝桥杯 2022 省 B - 李白打酒加强版
12345678910111213141516171819202122232425262728293031const int mod = 100000000 ...
STM32GPIO八种输入输出模式
STM32 GPIO
1. GPIO_MODE_AIN 模拟输入
输入信号不经施密特触发器直接接入,输入信号为模拟量而非数字量,其余输入方式输入数字量。
2. GPIO_MODE_IN_FLOATING 浮空输入
输入信号经过施密特触发器接入输入数据存储器。当无信号输入时,电压不确定。因为浮空输入既高阻输入,可以认为输入端口阻抗无穷大,这样可以检测到微弱的信号。(相当于电压表测电压,如果电压表内阻不够大而外部阻抗比较大,则电压表分压会比较小)。此时输入高电平即高电平,输入低电平即低电平。但是外界没有输入时输入电平却容易受到外界电磁以及各种玄学干扰的影响。如按键采用浮空输入,则在按键按下时输入电平为低,但是当松开按键时输入端口悬空,外界有微弱的干扰都会被端口检测到。此时端口可能高,也可能低。
3. GPIO_MODE_IPD 下拉输入
浮空输入在外界没有输入时状态不确定,可能对电路造成干扰。为了使得电路更加稳定,不出现没有输入时端口的输入数据被干扰 (比如手碰一下电压就发生变化)。这时就需要下拉电阻(或上拉电阻),此电阻与端口输入阻抗相比仍然较小。有输入信号时端口读取输入信号,无输入信 ...
STM32开发相关
开发准备
固件库
_htmresc 无用
Libraries 库函数文件
Project 官方提供的工程示例和模板
Utilities STM32官方评估板(官方的一个小电路板,用于测评STM32)的相关例程
Release_Notes 库函数的发布文档
stm32f10x_stdperiph_lib_um 使用手册
新建工程
下面弹出的这个窗口是Keil的工程助手,可以帮助新建工程,但是这里先用不到,关上即可
随后,打开STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm
其中的文件为STM32的启动文件,STM32的程序就是从这些启动文件执行的
将其中的启动文件放到我们创建的项目中,记得分文件夹
STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x
目录下的stm32f10x.h是STM32的外设寄存器描述文件,用于描述STM32有哪些寄存器和 ...
KEIL各版本镜像和STM的KeilPACK包下载
转载自芯片之家
本文章单纯用作记录方便文件丢失时自己下载
http://www.abov.co.kr/data/mds/PACK/ABOV.CM0_DFP.1.0.0.pack
http://www.abov.co.kr/data/mds/PACK/ABOV.CM0_DFP.1.0.0.pack
http://www.abov.co.kr/data/mds/PACK/ABOV.CM3_DFP.1.2.1.pack
http://www.abov.co.kr/data/mds/PACK/ABOV.CM3_DFP.1.2.1.pack
http://s3.asia.ambiqmicro.com/pack/AmbiqMicro.Apollo_DFP.0.9.2.pack
http://s3.asia.ambiqmicro.com/pack/AmbiqMicro.Apollo_DFP.0.9.2.pack
http://download.analog.com/tools/EZBoards/CM302x/Releases/AnalogDevices.ADuCM302x_DFP.1.0.3.pac ...
Linux普通用户不能使用TAB键、上下键
出发点
通过shell远程连接linux的时候发现tab键命令不能补全
结合ubuntu,因默认ubuntu创建的普通帐号,默认shell为/bin/sh,而这不支持tab等键的,所以将「指定用户」帐号的shell改为/bin/bash就可以
操作
1.查看当前的shell:
# echo $SHELL
/bin/sh
2.修改shell为/bin/bash:
(切换到root用户执行) # usermod -s /bin/bash 用户名
C++ 格式化输出(前置补0,有效位数,保留小数)
1. 默认情况
C++默认的浮点数输出
12345678#include<iostream>using namespace std;int main(){ cout << 0.123456789 << endl;//0.123457 cout << 1.123456789 << endl;//1.12346 cout << 1.23456789 << endl;//1.2346}
2. 前置补0
E.g:格式化输出时间HH:mm:ss。倘若时间不够10,则需要在前面补0。
头文件iomanip
输出控制符setw
理解:set width设置输出宽度。
作用范围:仅对后续的<<生效一次。所以输出一次用一次。
输出控制符setfill
理解:set fill character 设置填充的字符,不写参数的话默认是空格。
作用范围:自设置之后的所有<<,直到下一个setfill才更改。所以用一次就好啦。
123456789101112#i ...