【蓝桥杯备战】位运算(快速幂)与STL(set、vector、全排列)
为备战蓝桥杯,我每天把刷题经验总结成博客,鞭策自己学习,争取暑假输出三十篇以上。 位运算与快速幂位运算有左移、右移、同或、异或、与、或、取反,这里先写个应用,就是快速幂,后面有空再补充例题。下面图片如果看不清可以右击新标签页打开。 STL(set、vector、全排列) STL有好多,把今天用到的写一下。今天主要用到了set 、vector还有next_permutation(字符数组或string) 12345678//声明set<string> a;//插入a.insert(var);//遍历for(set<string>::iterator it;it!=a.end();it++){cout<<*it;}//查找是否有元素str,是则输出。if(a.find(str)!=a.end())cout<<str; set去重我之前知道,还有一个关键特性在今天做题中遇到的就是,把string放进去后会自动按照字典序排好,当做输入文章、按字典序输出不同单词时尤其好用。 //声明...
【蓝桥杯备战】递推、递归、前缀和、差分
首先是递推,洛谷P1255 数楼梯。阶梯思路如图: 但是由于该题N最大能到5000,显然,数值过大会爆掉long long,因此我们需要自己定义个数组自己模拟加法运算,被称为高精度运算。这里先上代码,然后上模拟这个运算过程的图。 1234567891011121314151617181920212223242526272829303132333435363738#include <iostream>#include <cstring>#include <vector> #include <cstdio>using namespace std;//台阶最大数为5000,我们定义个5005const int STEP_MAX=5005;//定义一个二维数组作为表格。tab[n]表示上第n个台阶的方式数量int tab[STEP_MAX][STEP_MAX];//len表示当前方法数的位数int len=1;void jump(int k){ //将前面两个台阶的方法数每位相加 for(int i=1;i<=len;i++...
【蓝桥杯备战】计蒜客T2431 二战轰炸机
为备战蓝桥杯,我每天把刷题经验总结成博客,争取暑假输出三十篇以上。 今天是校队训练的第一天,热身赛中10题AC了八题,AB两题没有AC,A题是UVA10285,B题是计蒜客T2431。A题还没有看,涉及到记忆化搜索,后面再补充,B题AC代码和解题思路如下,题面描述就不再贴了: 12345678910111213141516171819202122232425262728//AC代码:#include <iostream>#include <cstring>using namespace std;const int MAXN=5005;int map[MAXN][MAXN];int main(){ int N,R; cin>>N>>R; while(N--){ int i,j,v; cin>>i>>j>>v; map[++i][++j]=v; } for(int i=1;i<=5000;i++){ for(int j=1;j<=5000...
【字符编码】GB2312、GBK、Unicode
简要整理了下百度百科上关于这几个编码的介绍。GB2312:GB2312和GB2312-1980是一个意思,CP36和GB2312一样1980年国家标准总局发布,全称《信息交换用汉字编码字符集——基本集》。由于有一些罕见字没有录入,因此又出现了GBK,K是’扩’的声母。GBK:P-Windows32和苹果OS以GB2312为基本汉字编码, Windows 95/98则以GBK为基本汉字编码。GB2312是简体中文字符集,不支持繁体汉字。为统一繁体字符集编码,1984年,台湾五大厂商共同制定了一种编码方案,因为其来源被称为五大码,英文写作Big5,目前是繁体中文编码的事实标准。UnicodeUnicode是Universal Multiple-Octet Character Set的简称 UTF-8是Unicode的一种,使用可变长度字节来存储Unicode字符UTF是Unicode Transformation Format的简称,出现的目的是让能用ascii表示的字符就用1个字节表示,节省存储空间。
【随手笔记】嵌入式综合考试重点
1、寄存器的寻址方式一般来有七种基本寻址方式: 立即寻址方式、直接寻址方式、寄存器间接寻址方式、寄存器相对寻址方式、基址加变址寻址方式、相对基址加变址寻址方式等。 后5种的寻址方式是确定内存单元有效地址的5种不同的计算算法,实现对数组元素的访问! 1)立即寻址方式:MOV AH, 80H 2)寄存器寻址方式:MOV AX, BX 3)直接寻址方式:MOV BX,[1234H] 4)寄存器间接寻址方式:MOV BX,[DI] 5)寄存器相对寻址方式:MOV BX, [SI+100H] 6)基址加变址寻址方式:MOV BX, [BX+SI] 7)相对基址加变址寻址方式: MOV AX, [BX+SI+200H]举个栗子:有一条指令 “LDMIA R0!, {R1,R2,R3,R4} 多寄存器寻址 2、CISC复杂指令集 RISC 精简指令集 日常生活中Intel,AMD的x86 CPU就是采用CISC复杂指令集 日常生活中华为手机,鲲鹏处理器,CPU就采用RISC精简指令集 RISC只有LOAD/STORE操作内存 3、...
【安装配置】redis笔记(含安装包)
redis安装包,解压即可使用。链接:https://pan.baidu.com/s/1vGH9xhk_IL-eRgFNbXVtSQ 提取码:7049 今日内容1. redis 1. 概念 2. 下载安装 3. 命令操作 1. 数据结构 4. 持久化操作 5. 使用Java客户端操作redis Redis1. 概念: redis是一款高性能的NOSQL系列的非关系型数据库 1.1.什么是NOSQL NoSQL(NoSQL = Not Only SQL),意即“不仅仅是SQL”,是一项全新的数据库理念,泛指非关系型的数据库。 随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题。 1.1.1. NOSQL和关系型数据库比较 优点: 1)成本:nosql数据库简单...
【CCNA第四天】vlan和trunk的应用场景
为什么要用vlan如果让公司的技术部和销售部能够自由通信,可能会出现几个核心成员一串通就开了一家新的公司。从这个简单的例子出发我们就知道,部门之间的网络应当相互隔离,划分为几个局域网——这就是为什么要用vlan 如图所示,上面的两台PC和一台服务器属于技术部的,下面的两台PC和一台服务器属于销售部的,我们想要让各部门内可以相互通信,部门与部门之间禁止通信。相关命令: 123456789101112vlan 10 ///创建vlan 10(以太网范围2-1001) name jishubu ///命名vlanvlan 20 name xiaoshoubu Int ran f0/1 - 2 ///同时进入f0/1-f0/2接口 sw mode access ///接口设置为接入模式(用户) sw access vlan 10 ///接入到vlan10这个局域网int ran f0/3 - 4 sw mode access sw access vlan 20 这样的话是否能实现呢?如果技术部的两台PC和服务器都连同一个...
【CCNA第三天】交换机Mac地址的静态绑定 (1)
CCNA第三天主要讲了交换机mac地址的静态绑定,以及这个实验的一些前置知识。 OSI参考模型: 这一天我们主要学习前两层:物理层和数据链路层。 物理层:作用:定义线缆标准,例如:电压、线速、规格等。设备:modem调制解调器、集线器、中继器 数据链路层作用:定义的是线路物理标准,连接器标准,物理地址。协议:IEEE 802协议有线标准:IEEE 802.2、802.3、802.5、FDDI无线标准:IEEE 802.11(a、b、g、n、ac),现网中常用的无线标准是IEEE 802.11acPS:以太网IEEE 802.3、令牌环网IEEE 802.5、FDDI这三种协议称为局域网大三协议。设备:交换机mac地址的学习:交换机的默认mac地址表为空,在接收到数据帧时,记录下接收的端口和数据源设备的Mac地址。 Mac地址表的静态绑定MAC地址表静态绑定应用场景:办公网络环境中,交换机决定了内网数据的转发,因此交换机的mac地址表稳定是非常重要的,为了安全起见,不至于让交换机即插即用,我们对交换机的mac地址表进行静态映射(绑定)static。然后再启用端口安全,使除了绑...
【CCNA第三天】交换机Mac地址的静态绑定
CCNA第三天主要讲了交换机mac地址的静态绑定,以及这个实验的一些前置知识。 OSI参考模型: 这一天我们主要学习前两层:物理层和数据链路层。 物理层:作用:定义线缆标准,例如:电压、线速、规格等。设备:modem调制解调器、集线器、中继器 数据链路层作用:定义的是线路物理标准,连接器标准,物理地址。协议:IEEE 802协议有线标准:IEEE 802.2、802.3、802.5、FDDI无线标准:IEEE 802.11(a、b、g、n、ac),现网中常用的无线标准是IEEE 802.11acPS:以太网IEEE 802.3、令牌环网IEEE 802.5、FDDI这三种协议称为局域网大三协议。设备:交换机mac地址的学习:交换机的默认mac地址表为空,在接收到数据帧时,记录下接收的端口和数据源设备的Mac地址。 Mac地址表的静态绑定MAC地址表静态绑定应用场景:办公网络环境中,交换机决定了内网数据的转发,因此交换机的mac地址表稳定是非常重要的,为了安全起见,不至于让交换机即插即用,我们对交换机的mac地址表进行静态映射(绑定)static。然后再启用端口安全,使除了...
【CCNA第二天】路由器密码破解及恢复
一、设备基本操作:设备模式1)用户模式以>开头2)特权模式以#开头 在模式下可以进行复制操作,全局模式不行3)全局模式以(config)开头 在全局模式下进行接口的配置,如加ip不同模式权限不同,用户模式<特权模式<全局模式。 路由设备的基本命令en ///enable 从用户模式进入特权模式#conf t ///完整命令configure terminal,进入全局int f0/0 ///进入接口no sh //打开接口ip add 192.168.1.1 255.255.255.0 ///配置ip地址 模式退出:exit ///逐级退出,例如:全局——特权——用户end ///直接退出,只能到特权,无法进入用户。 模式与命令不匹配,导致设备进入DNS解析,现象 PS:特权模式下无法使用“end”命令,因此设备认为用户在此输...
helloworld是怎样被一步步编译为可执行文件的?
12345#include<stdio.h>int main(){printf("helloworld");return 0;} 概述在windows中,C语言代码的编译过程由IDE(如vc6、vs等软件)一键生成了可执行文件,但是我们知道编译过程有以下步骤:预处理、编译、汇编、链接,于是我们可以在linux下用命令来分别执行这些步骤,从而可以查看某步后的内容。 1)预处理阶段1命令:gcc -E hello.c -o hello.i 预处理阶段主要做的有三件事:1.文件包含 2.条件编译 3.宏定义展开1.文件包含即将stdio.h中的内容复制下来替换#include <stdio.h>2.条件编译例如#if #ifdef这些语句,实现其功能,这里不再赘述。3.宏定义展开即如果有#define a 3 那么将会把程序中的a替换为3。 2)编译阶段1命令:gcc -S hello.i -o hello.s 以下是编译的结果: .file "hello.c" .sectio...
【CCNA第一天】备份与更新路由器操作系统(IOS)
IOS是啥?这里的IOS指的是网络操作系统,对目前的我来说就是路由器,将路由器和电脑连线后,我们可以在电脑上利用Secure CRT来连接路由器,使用命令对其进行配置。 IOS的备份与更新:就像手中的苹果手机每隔一段时间会更新ios系统一样,路由器的系统也需要更新。为了防止更新中出现如断电等意外情况,我们需要先对老系统进行备份。 备份与更新前的准备工作材料:1.console线2.RS232转接线3.双绞线(交叉线一根、直连线一根)4.设备电源线(通用)软件:1.tftp服务器端2.Secure CRT(win xp系统是不需要的,XP系统自带一个“超级终端”)3.RS232转换线驱动程序 连线示意图: 第一步按照上述示意图将设备与电脑连接 第二步将RS232转换线接在电脑上,安装驱动,然后查看是否安装成功。 PS:“com3”是RS232转接线在电脑上的硬件接口,相当于外接设备(键盘、鼠标等) 第三步打开CRT,选择连接,选择protocol“serial”,端口“com3”(根据第二步查看到的端口),波特率“9600”(影响的是设备输出,波特率不正确,设备会输出乱码)。...
【程序人生】大二总结——给“清单”打个√
每个人心中有多么长的一个清单清单里写着多么美好的事可它们总是悲哀推迟被搁置在时间的阁楼上腐烂为什么勇气的问题总被误认为是时间的问题而那么沉重抑郁的 不得已的 总被叫做生活本身 写这个标题的时候其实很不甘心——噢,原来我已经到了不得不总结大二的时候了,它就这样过去啦? 不甘归不甘,网课已经结束了,线上考试也考完了,暑假已经到来,是时候写一下最近都做了些什么,还想做些什么。回头看一下刚刚上大二写的文字:心之所向,素履以往——有许多困难,我们不得不独自面对当时想要学习JavaWeb,刚刚起步,十分艰难,靠自学很不容易地掌握了数据库的一点东西。那么现在把现在的情况向过去的自己汇报一下吧: 软件设计师已经通过了,由于疫情,证件等返校后再拿。 19年底其实是没能做出一个网站出来,但是在几个月后的20年2月份,下定决心,买了阿里云的服务器和域名,肝了一段时间成功做出了能访问的网站。 目前已经能做个基本的CRUD的网站了,尽管前端学的比较水,只能用用模板,css和js实际应用非常吃力。 学校课程,挂的物理实验补了,这学期疫情期间的线上课程也有惊无险地度过了,甚至由于一些不可描述的原因...
【安装配置】黑马 redis基础
笔记内容是黑马redis的笔记,非原创,为方便有需要的人下载redis,这里给出百度网盘链接:https://pan.baidu.com/s/1vGH9xhk_IL-eRgFNbXVtSQ 提取码:7049 今日内容1. redis 1. 概念 2. 下载安装 3. 命令操作 1. 数据结构 4. 持久化操作 5. 使用Java客户端操作redis Redis1. 概念: redis是一款高性能的NOSQL系列的非关系型数据库 1.1.什么是NOSQL NoSQL(NoSQL = Not Only SQL),意即“不仅仅是SQL”,是一项全新的数据库理念,泛指非关系型的数据库。 随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题。 1.1.1. NOSQL和关系型数据...
【Git_Github学习】第一次真正接触Git,总结一下。
==声明:==这不是一篇十分完整的Git入门教程,只能算是博主入门的经验总结。参考文章 学习Git的必要性:1.Github上有很多资源就凭Github上聚集的大量大神以及它的海量代码资源,也值得我们去认真学习一下这个网站以及Git这个工具。Git下载地址 2.版本控制比如周一写好了登录功能,上传一下,周五项目卡壳了,想看一下周一的代码怎么写的,直接去下载下来看就好了。比本地备份要方便,这就是它的强大之处,可以方便的查看先前版本的代码。 怎样通过Git来上传你的代码?1.获取密钥 1ssh-keygen-t rsa-C "your_email@youremail.com" 这里会让你写下密码什么的如果你写了就要记得 2.将密钥保存到Github上在右上角头像的setting中有ssh and GPG keys,进入以后new 一个sshkey,将你刚刚获取的密钥粘贴进去 3.查看是否绑定 1ssh -T git@github.com 如果显示↓这些东西,说明你之前在获取密钥时设定了密码,输入一下回车就行。 1Enter ...