大杂烩
[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 ...
一道集众多技巧于一身的题目——《密文游戏》
题目描述
小明是你的好朋友,想和你一起玩密文游戏。你俩约定了一个简单的加密解密方案:字符 0 映射字母 A,字符 1 映射字母 B,依次类推,字符 9 映射字母 J。例如:原文1314的密文为BDBE。
昨天,你给小明发了一条信息。由于未知原因,密文到小明那里发生了缺失。今天上课,你俩见面对照了原文和密文,发现密文丢失了若干字符。设原文S的长度为n,密文T的长度为m,小明突发奇想:对照原文,有多少种方案能把密文补全,字母数量和位置不同,都视为不同的方案。作为好友的你,帮他计算一下吧。
输入格式
第一行,原文S,长度为n(2≤n≤2000)。
第二行,密文T,长度为m(1≤m ≤ n-1 )。
输出格式
一行,所求的方案数。
样例 #1
样例输入 #1
121414BE
样例输出 #1
13
样例说明
样例中3种补全方案如下。()中代表所补的密文。
BE(BE)
B(EB)E
(BE)BE
代码长度限制
时间限制
内存限制
16KB
1000ms
2MB
分析
可以看出,本题就是一道方案统计的问题。
一般来说,方案统计的问题也需要借助状态之间的转移,所以我们也 ...
回溯
1
题目描述
赛场内 n (0<n≤10) 名短跑运动员正在参加百米短跑比赛。赛场外有 m (0<m≤100) 名热心观众,他们每人都对比赛结果作出了 2 个预测。比赛结束后,运动员的名次各不相同,但令人惊奇的是每位观众都猜对了一半。请问这些运动员取得的实际名次是多少?
例如场内有 4 名运动员参加比赛,场外 3 名观众的预测分别为:
1 号运动员名次为 1,2 号运动员名次为 3
3 号运动员名次为 1,4 号运动员名次为 4
4 号运动员名次为 2,1 号运动员名次为 3
由每人猜对一半推理可知:
1 号运动员名次为 4
2 号运动员名次为 3
3 号运动员名次为 1
4 号运动员名次为 2
请编写程序,根据观众的预测来推算运动员的实际名次。
输入格式
两个正整数 n 和 m (运动员人数、观众人数)
随后有 m 行数据,每行包含 4 个整数,为 m 位观众的预测
每行包含的 4 个整数 x1、r1 和 x2、r2 表示该观众的两个预测:
x1 号运动员名次为 r1,x2 号运动员名次为 r2
说明:
n 名运行员的编号为从 1 到 n 的正整数,无重号和 ...
C++ STL
#include
求交集:
set_intersection(first1,last1,first2,last2, result)
求集合差:set_difference(first1,last1,first2,last2, result)
合并两个集合:set_union(first1,last1,first2,last2, result)
上述所传递的容器必须是排序的
12345sort(vm.begin(), vm.end());sort(vn.begin(), vn.end()); vector<int> result; set_intersection(vm.begin(), vm.end(), vn.begin(), vn.end(), inserter(result, result.begin()));result.erase(unique(result.begin(), result.end()), result.end());//这是由于vector元素可能存在重复,需要去重
set_intersection实现
1234567891011 ...
模拟与高精度
P1042 [NOIP2003 普及组] 乒乓球
题目背景
题目描述
华华通过以下方式进行分析,首先将比赛每个球的胜负列成一张表,然后分别计算在 11分制和 21 分制下,双方的比赛结果(截至记录末尾)。
比如现在有这么一份记录,(其中 W 表示华华获得一分, L表示华华对手获得一分):
WWWWWWWWWWWWWWWWWWWWWWLW
在 11分制下,此时比赛的结果是华华第一局 11比 0 获胜,第二局 11比 0 获胜,正在进行第三局,当前比分 1 比 1。而在 21 分制下,此时比赛结果是华华第一局 21 比 0 获胜,正在进行第二局,比分 2 比 1。如果一局比赛刚开始,则此时比分为 0 比 0。
到达11分(21分)后,分差大于或者等于 2,才一局结束。
你的程序就是要对于一系列比赛信息的输入(W L 形式),输出正确的结果。
输入格式
每个输入文件包含若干行字符串,字符串有大写的 W 、 L 和 E 组成。其中 E 表示比赛信息结束,程序应该忽略 E 之后的所有内容。
输出格式
输出由两部分组成,每部分有若干行,每一行对应一局比赛的比分(按比赛信息输入顺序)。 ...