自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(59)
  • 收藏
  • 关注

原创 IWDG独立看门狗

整理自:正点原子PPT文章目录为什么需要看门狗?看门狗能解决的问题是什么?独立看门狗功能描述独立看门狗超时时间独立看门狗操作步骤以及示例代码实验现象为什么需要看门狗?在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环,程序的正常运行被打断,由单片机控制的系统无法继续工作,会造成整个系统的陷入停滞状态,发生不可预料的后果,所以出于对单片机运行状态进行实时监测的考虑,便产生了一种专门用于监测单片机程序运行状态的模块或者芯片,俗称“看门狗”(wat

2021-05-30 22:06:11 237 1

原创 USART串口通信实验

整理自:正点原子PPT文章目录串口简介串口通信基本原理常用串口相关寄存器串口操作相关函数硬件连接串口配置一般步骤例程参考升级版串口简介详情见STM32F4开发指南串口通信基本原理常用串口相关寄存器1、USART_SR状态寄存器2、USART_DR数据寄存器3、USART_BRR波特率寄存器串口操作相关函数void USART_Init(); //串口初始化:波特率,数据字长,奇偶校验,硬件流控以及收发使能void USART_Cmd();//使能串口void USART_ITConf

2021-05-26 19:37:27 1625 1

原创 EXTI 外部中断

整理自:正点原子PPT文章目录简介外部中断配置步骤简介STM32F4的每个IO都可以作为外部中断输入,STM32F4的中断控制器支持23个外部中断/事件请求。EXTI线0~15:对应外部IO口的输入中断。EXTI线16:连接到PVD输出。EXTI线17:连接到RTC闹钟事件。EXTI线18:连接到USB OTG FS唤醒事件。EXTI线19:连接到以太网唤醒事件。EXTI线20:连接到USB OTG HS(在FS中配置)唤醒事件。EXTI线21:连接到RTC入侵和时间戳事件。EXTI线

2021-05-25 19:05:32 1117 1

原创 NVIC中断优先级管理

整理自:正点原子PPT目录1 简介2 中断管理的方法3 响应优先级和抢占优先级原则4 中断优先级的设置步骤1 简介具体定义可以自行进行百度百科,这里只挑重点进行讲解。STM32F40xx/STM32F41xx的92个中断里面,包括10个内核中断和82个可屏蔽中断,具有16级可编程的中断优先级,而我们常用的就是这82个可屏蔽中断。2 中断管理的方法对STM32中断进行分组,组0~4,同时,对每个中断设置一个抢占优先级值和响应优先级值。对于0组,他是只有0位抢占优先级,4位响应优先级。对于1组,

2021-05-25 18:32:10 699

原创 如何使用getline读入字符串(char)

也许是最近模拟题打多了的缘故,我发现自己渐渐变得比较毒瘤起来,当然这也是有一定的好处的,因为从中我也学到了一些处理字符串的正确姿势,今天我们就来讲一 讲如何用函数getline来读入一整行字符串进行处理。或者他的一些变体。首先我们先需要知道为什么我们要学习这个函数,是这样的,相信大家都应该知道以前有一个函数叫做gets,这个函数非常的好用,你可以非常快捷的使用他来进行一整行字符串的输入,但是这...

2018-06-05 22:43:52 5879

原创 K短路

其实这个才是最短路的一个非常好的应用。那么下面我们就来讲一讲具体如何实现吧。先确保自己已经熟练掌握了两种最短路的求解方法!!!这里有传送门:1、SPFA2、Dijsktra priority!然后我们先大体讲一讲思路,第k短路顾名思义就是我们要找到反正不是最短的一条路,那怎么办呢?我们这个时候就会发现我们不能像实现各种最短路算法的方法一样刷dis刷出第k短路,那么这个时候又...

2018-05-11 23:59:34 3496

原创 getchar()实现的去掉空格

这里其实这个东西还是比较简单了的,所以这里只是贴一篇代码,相信大家认真看一下也是可以看懂的!代码如下:#include<bits/stdc++.h>using namespace std;char st[500];int u=0;void read(){ char c; while(c!='\n') { c=getchar(); ...

2018-04-30 16:06:18 6202

原创 枚举排列

今天我们来学习一些轻松的东西,全排列,这个东西应该还是非常的基础的,所以这里我们就不用再对他多做太多解释了,这里直接上一道题和一个标程,大家练习一下其实就可以了。题目传送门:P1706 全排列问题标程如下:#include<bits/stdc++.h>using namespace std;bool x[12];int xx[13];int n;void p_se...

2018-04-25 16:56:45 295

原创 【解题报告】小白逛公园 vijos

题目传送门这道题是一道线段树的一个求一个连续最大字段和是一个区间线段树一个很妙妙的操作,这里后面我们后面就会提到,因为今天博主没有时间了所以先粘一篇代码供大家参考,其实代码理解还是非常的简单的。代码如下:#include<bits/stdc++.h>using namespace std;struct data{ int rmax,lmax,maxtot,s...

2018-04-21 16:52:00 261

原创 sprintf的基本用法

sprintf其实有非常多的用法,但是我们这里只介绍比较常用的一个用法!我们先来介绍一下,他有哪些用法,这里主要只有3种把一个int型的数据转化为char型求此int的型的8进制和12进制并存入char型下面我们来发一个关于int转char的代码,有了它,我们以后再也不怕把int转char的代码写的贼长啦!!!代码如下:#include<bits/stdc++....

2018-04-20 20:59:34 323

原创 用lower_bound进行的离散化

今天学习了一些新的东西,我也不知道该怎么说,突然发现离散化居然可以这么玩,还是非常有意思的,下面我先放一个传统的离散化代码,没有学过的同学们相信经过一番脑补也应该可以知道这个东西是用来干什么的,但是这不是我们今天的重点!代码如下:#include<bits/stdc++.h>using namespace std;struct sd{ int val,loc;/...

2018-04-05 09:36:49 738

原创 从逆序对发展

其实逆序对不仅仅是可以用1、离散化+权值线段树2、动态开点+权值线段树如果您还没有看到这两个解法,不要着急,下面是链接:从逆序对开始这道题已经被我淡忘一周了,可是他的灵魂我一直没有忘记,直到昨天,有一个同学提醒我这道题能不能用树状数组做,我一下子就惊醒了,我发现这个东西应该是一个非常好的点子,因为树状数组本来就要比线段树快并且空间比线段树小,最重要的是,这玩意儿还非常的好写,所以今...

2018-04-04 17:18:16 141

原创 动态主席树

本题代码博主还没有认真研究过,但是可以大致脑补出动态主席树的操作。但是还是请你确保你在理解这篇代码之前已经理解了前面的静态主席树和主席树铺垫友情链接:主席树铺垫主席树然后我们来讲一下动态主席树的思路吧,其实重点只有一句话,但是在这里我还是给大家讲的详细一点。我们的静态主席树是只支持查询静态区间第k小,那么相信大家已经是非常熟悉他的思路了。但是动态主席树是支持进行在修改的,所以会...

2018-03-31 11:40:17 292

原创 静态主席树

这个东西对于我这种菜鸡来说还是有一点难以把他解释清楚,所以在一些关键的讲解步骤(我自己解释不清楚的地方),我就只好引用一下一些大佬的!(其实写完了以后发现这些东西都是我自己写的!!!嗯,有进步!!!)下面我就开始讲哈!相信大家看这篇讲解之前都应该看了我前面写的一篇博客,如果没有看大家可以先去看一下:讲解传送门(求整体区间第k大)好了我们默认大家应该已经懂得了如何求整体区间第k大了,...

2018-03-31 11:21:47 195

原创 主席树铺垫——总区间第k小

题目描述(口糊)先给定一个长度为n的数列,然后给m次操作,每次输入b,求第b小的数。样例输入57 4 10 9 23512345样例输出4791023数据范围及温馨提示1e9 大家一定要用线段树做这道题啊!建议大家在认真阅读一下逆序对的题解题解传送门于是这里我们只需要把query改一下其实就可以了。int q...

2018-03-28 16:55:41 133

原创 从逆序对开始······

请对每一个你所学的知识保持一种尊敬的态度,千万不要说一个东西简单,是知识总会有他独特的价值,这也是为什么我要坚持写博客的一个原因!!!题目传送门不得不说今天晚上听了一下大佬讲解的逆序对,确实感觉这个东西非常的神奇,因为我发现这个东西不仅仅是一个归并排序那么简单的东西,实际上背后还大有学问,虽然本人并没有学会这道题的基本解决方式,但是跟着大佬混总还是会学到一些东西的,那么今天我就来为大家介绍...

2018-03-24 13:32:03 146

原创 博客背景图片一览

绝地求生:部落冲突:星球大战:前线

2018-03-24 13:28:37 5446

转载 Lower_bound和upper_bound大致使用事项

upper_bound 和lower_bound是二分查找,所以效率略高,但笔者在使用的时候发现偶尔会有一些问题,所以写了这篇文章,总结了一发。首先,最形象的一句话: upper_bound(i) 返回的是键值为i的元素可以插入的最后一个位置(上界) lowe_bound(i) 返回的是键值为i的元素可以插入的位置的第一个位置(下界)。怎么理解呢,举例: 在升序的set里面 ...

2018-03-23 19:30:12 478

原创 树状数组(基础)

首先,我们阐明一下为什么我们要学习树状数组,因为这个东西在某些方面来说要比线段树好一些,首先就是他自己比较好写,第二就是他在解决某些简单问题时,时间复杂度会比线段树更小一些。下面先来上一篇代码: 大家可以认真看一下 题目传送门(单点修改和区间查询)#include<iostream>#include<cstring>#define lowbit(x) x...

2018-03-21 16:29:45 137

原创 链表(LInked LIst)

今天上午凭借昨天晚上自己学习的指针,今天学习了链表,发现还是一个非常有用的数据结构,从此我知道了学习指针的重要性。很多人给我说,指针这个东西其实没有什么太大的作用,认为链表其实也可以不用指针写,虽然代码篇幅要大一些,但是要好理解一些,但是其实用指针写利远远大于弊,这里列出一些我认为是优点的东西。指针变量速度上有一些优势。指针数组可以动态的申请和释放空间,不需要像普通数组一样直接必须申请...

2018-03-10 11:50:12 215

原创 cin的读入优化

本人最近发现cin是可以进行优化的,cin并不是因为自身原因所以比scanf慢的,而是因为为了保留什么兼容性,把他变慢了,我们只要把这个兼容性关了以后,他就会变快! 关闭语句:std::ios::sync_with_stdio(false);下面是有趣的实验截图:scanf语句测试:cin不加优化:cin加优化有人会问,我每次写个读入就要写这么长的东西...

2018-03-02 08:29:22 4930 1

原创 【网络流】EK算法及其优化

今天上午我仿佛知道了什么叫做网络流,这里推荐一篇博客,大家入门网络流的可以看一下这篇博客,保证一看就懂!博客链接: 网络流入门这里有一篇经过我改过的EK带注释代码(博客里也有一样的,只是加了一些注释),大家可以看一下://codevs 1993#include<cstdio>#include<cstring>#include<algorithm...

2018-02-28 16:55:32 491

原创 异或运算(相同为0,不同为1)

转进制计算器先输入一个十进制数,再输入要转换的进制······ #include<cstdio> #include<cstring> using namespace std; int shi,zh,yu,u=-1,lench; char ch[1000000]; int main() { s...

2018-02-27 23:48:34 23241

原创 关于一个小小的骚操作(大佬忽略)

关于一个骚知识的个人代码实现题目戳这里:1554梦中的统计代码如下:* _请重视njc函数_ * #include<cstdio> #include<cstring> using namespace std; int N[15]; int n,m; int po(int j) { ...

2018-02-27 23:48:02 627

原创 求最大公约数

这个东西需要用到数学上的辗转相除法,这里就不在赘述,辗转相除法详见百度百科和代码中的njc函数。题目链接: 求最大公约数问题下面代码:#include<cstdio>#include<cstring>using namespace std;int njc(int a,int b){ if(a%b==0) return b; retu...

2018-02-27 23:47:07 145

原创 STL中那些好用的东西!(持续更新)

一、数据结构部分1、set&map(后续持续更新)2、queue(priority_queue)queue<int> a; //定义 a.push(i); //压入 a.pop(); //弹出 a.size(); //取大小 a.front(); //访问队首元素 a.back(); ...

2018-02-27 23:46:35 438

原创 题解 P1197 【[JSOI2008]星球大战】

链接戳这里☞星球大战 #include<cstdio> #include<cstring> #include<vector> #include<queue> using namespace std; int mp[400001][3]; vector<int> q; ...

2018-02-27 23:45:50 191

原创 线段树1对于Pushdown的理解

线段树1对于Pushdown的理解线段树1是一个区间修改和区间求值的题,他相当于以前的线段树——区间求值和单点修改和区间修改和单点求值,产生了本质上的一些区别,最主要的就在于Pushdown上的区别,现在我们就来区分一下。1、线段树练习——单点修改和区间求值这个主要考察的就是线段树最主要的三个步骤 建树(Buildtree) 修改(modify) 查询(query)本题难度不大...

2018-02-27 23:44:59 3530

原创 最短路问题之SPFA

P3371 【模板】单源最短路径 题解这是一道蛋蛋的题,我用SPFA干掉了他,可是又因为老毛病if没打两个等号,这道题又成功的耗费了我20分钟!下面上源代码(内有注释): //SPFA #include<cstdio> #include<cstring> #include<vector> #include...

2018-02-27 23:44:27 142

原创 初识单调栈

P2866 [USACO06NOV]糟糕的一天Bad Hair Day首先让我们了解一下,对于本题单调栈的一个操作思路。没看题的戳这里→题目。先定义一个栈,然后我们遵循一个原则,我们先从头开始把奶牛的身高压入栈,(一定要记住是从前往后看)第一头直接压,不管,前面的看一下后面有没有比他高的,如果暂时没有就top- -(top是记录他*被*看的次数);直到有的时候,那么就把他top++...

2018-02-27 23:43:45 113

原创 初识单调队列

P1886 滑动窗口这道题是一道单调队列的基本练习,因为时间缘故,我就不再这里多说了,看到有一篇很好的题解在这里*转载*一下,讲得非常的详细,相信大家认真看一下,也是可以看懂的。单调队列有两个性质队列中的元素其对应在原来的列表中的顺序必须是单调递增的。队列中元素的大小必须是单调递*(增/减/甚至是自定义也可以)单调队列与普通队列不一样的地方就在于单调队列既可以从队首出队...

2018-02-27 23:43:06 126

原创 打表拿省一!!!

下面来上一道传奇的普及-高性能题目, 回文质数 我第一次做这道题的时候,因为没有看到他的数据范围成功的没有看见他的数据范围限制,于是成功TLE了! 下面是我的第一次代码:#include<cstdio>#include<cstring>using namespace std;long long a,b;bool njc(int n){ fo...

2018-02-27 23:42:20 2396 2

原创 博弈论初步

这是一道关于博弈的问题,希望以后考试中不会遇见: 题目: P1290 欧几里德的游戏下面直接上代码: #include<bits/stdc++.h> using namespace std; typedef long long ll; int main() { ll c; cin>>c; ...

2018-02-27 23:41:15 166

原创 初识AOV拓扑排序

首先先引入一段概念:AOV网:在一个表示工程的有向图中,用顶点表示活动,用弧表示活动之间的优先关系。这样的有向图为顶点表示活动的网,我们称为AOV网(Activity On Vertex Network)。程序设计语言(以C语言为例)中定义为:在一个有向图中,若用顶点代表活动,边代表活动间先后关系,称该有向图为顶点活动网,简称AOV网。在AOV网中,若从顶点i到顶点j之间存在一条有...

2018-02-27 23:40:33 391

原创 开车,开车!!!

倍增问题其实说实话,我现在也不知道倍增问题是什么东西!题目链接: P1081 开车旅行标成如下:#include<bits/stdc++.h>#define LL long long #define N 100005 //小A开山蹦蹦,小B很正常 0是B 1是A using namespace std;struct sd{ int ...

2018-02-27 23:39:46 251

原创 快速幂

我觉得这个东西还是比较简单的,为什么考试的时候没有打出来我也不知道,再次奠基一下我那凉掉的考试。 这里是一个简单的快速幂算法,求2的n次方的。这里在放一道例题: P1226 取余运算||快速幂下面是源代码:#include<cstdio>using namespace std;int n;long long search(int n){ //if(...

2018-02-27 23:38:55 195

原创 【解题报告】 垃圾陷阱

这道题是一道非常典型的DP,下面我们就来对这道题进行一些讲解!题目链接: P1156 垃圾陷阱作为一道“提高+/省选-”的题目,相信这道题还是很有价值的,本题的价值就在“时间”这个限制变量上,这个变量要是没有看出来,那么这道题想要AC确实就有一点困难了!!!解题方法:本题鄙人用的是滚动数组的办法,很偷懒,有一点耍小聪明的感觉,但是这种方法却也是最好的!如果你还没有看通“...

2018-02-27 23:38:20 254

原创 Andrew算法(我确实不懂Graham)

先解释一下:这两个算法分别都是凸包问题的算法,然后Andrew是Graham的变种,速度更快,更稳定,非常优秀,介于我已经把Graham写的莫名其妙的WA了,所以我选择了这种算法!我认为在这里,还是有必要向大家在这里先普及一下什么是凸包:计算几何凸包凸包:给你n个散落的点,让你求出最小的凸多边形将所有的点包括起来,或者点在边上。用到的算法是Graham或Andrew!这里给...

2018-02-27 23:37:18 1681

原创 【解题报告】P1282 多米诺骨牌

这是一道非常经典的动态规划题目······我们首先来对它来进行分析,我们首先发现他应该是用一个二维背包来解决的问题。二维背包第一个维度存储多米诺骨牌序号i,第二维度存储前i个多米诺骨牌第一行的权值,最后每个变量的值表示的是要操作的次数。于是动归方程式如下: if(j-x1[i]>=0) bag[i][j]=min(bag[i-1][j-x1[i]],bag[i]...

2018-02-27 23:36:10 373

原创 【解题报告】01背包

这应该是最基础的背包问题了,但正因为他的基础,他的思想会被用在很多DP题中,所以这里有必要对他剖析一下。我们应该掌握的方法有两种1、二维数组。2、滚动数组。后面那个一看就要高级一些,但是确实对动归没有太大的帮助,所以大家一定要把第一种方法学好!第二种方法我不做解释,只会黏贴代码,大家认真脑补一下应该也是可以理解的。题目链接: 01背包问题二维数组法:这里定义背包叫...

2018-02-27 23:35:14 159

空空如也

空空如也

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

TA关注的人

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