自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 资源 (1)
  • 收藏
  • 关注

原创 数据结构(三)KMP算法

在长度为m的模式串和长度为n的主串的匹配中,如果纯用双指针暴力匹配,那么在主串上的指针i需要反复回溯,这样的时间复杂度为O(mn)。每次匹配失败的过程中,只要j指针往后移动了,就说明此时模式串和主串的一部分是匹配成功的,这部分主串的信息我们是已知的,如果此时i不动,而让j移动到另一位置k,且满足模式串上的1~j-1与(k-j+1)~(k-1)这两部分是完全一致的,则下一次匹配可以让i不动,而使模式串直接从k开始即可,这样可以大大的减小时间复杂度。因此,我们就明白,KMP算法主要分为两步,第一步是求j

2022-01-29 16:14:02 1051

原创 数据结构(二)栈与队列(数组模拟版)

一、栈特性:先进后出。基本操作写法如下://stk为模拟栈所用数组,tt为栈顶下标int stk[N], tt;//插入新元素stk[++tt] = x;//弹出栈顶tt--;//判断是否为空栈if(tt > 0) not empty;else empty;//取栈顶stk[tt];可以看出,用数组模拟栈的各种操作都极为简单!...

2022-01-29 00:46:45 1292

原创 Acwing寒假每日一题(二)千草堆

题目链接:千草堆题解:典型的差分问题。建立存草堆数目的数组grass[N]和其差分数组d[N],每次在a到b区间内插入1时,只需对d[a] += 1,d[b+1] -=1即可,可以达到O(1),如果直接暴力会超时!!!AC代码如下:#include <bits/stdc++.h>using namespace std;const int N = 1e6 + 10;int grass[N], d[N];//建立存草堆数目的数组grass[N]和差分数组d[N]void i

2022-01-02 21:45:27 325

原创 Acwing寒假每日一题(一)笨拙的手指

题目链接:笨拙的手指题解:输入两个字符串a, b,然后分别倒序存入两个vector A,B中,注意要减'0'。然后,遍历A,每次改变一位,与1异或即可实现,将其转为10进制,再转为3进制,注意此时需要补足前导零,方便于B比较。然后,将C与B一位一位的比较,若有不同则计数器++,若遍历结束后计数器=1,说明这就是正确的十进制结果,输出即为正确答案,AC代码如下。#include <bits/stdc++.h>using namespace std;typedef long lo

2022-01-02 19:11:15 409

原创 数据结构(一)链表(数组模拟版)

一、数组模拟单链表单链表作用:常用于作为邻接表,可以存储树或图。数组模拟单链表方法:创建两个数组,e[N]用来存每一个结点的value值,ne[N]用来存每一个结点的next指针,空节点的ne值为-1,两个数组是通过下表关联起来的,都是int型,head表示头指针,指向链表头,链表空时为-1,idx表示当前用到了哪个点,如下图所示:初始化、插入、删除基本操作如下:#include <iostream>using namespace std;const int .

2021-12-26 22:13:55 273

原创 C++ STL入门学习(持续更新中)

一、vector变长数组1.读入方法#include <iostream>#include <vector>using namespace std;int main(){ vector<int> a;//直接读入一个名为a的vector vector<int> a(10);//读入一个长为10的名为a的vector vector<int> a(10, 2);//读入一个长为10的,每个数都为2的名为a的ve

2021-10-20 01:01:00 165

原创 基础算法模板(一)

一、快速排序#include <iostream>using namespace std;const int N = 1e6 + 10;int n;int q[N];void quick_sort(int q[], int l, int r){ if(l >= r) return; int i = l - 1, j = r + 1; int x = q[l + r >> 1]; while(i < j){

2021-09-05 23:08:03 237

原创 面向对象速成

#include <iostream>#include <string>using namespace std;class student{ public://公有 string name; int age; student();//构造函数,自动初始化对象 student(string a, int b);//重载,可动态初始化对象,是成员函数,又叫方法 bool read() const;//常成员函数,只读不写 static int c.

2021-08-29 23:21:46 158

原创 常用的DOS命令

一、基本命令1.dir:列出当前目录下的文件和文件夹2.md:创建目录3.rd:删除目录4.cd:进入指定目录5.cd..:退回到上一级目录6.cd\:退回到根目录7.del:删除文件(不能用于删除目录,删除目录用rd)8.exit:退出dos命令行补充:可直接使用echo来创建文件,如创立一个内容为“Hello World”的.doc文件echo Hello World>1.doc二、常用快捷键1.← →:移动光标2.↑↓:调阅历史操作命令

2021-05-21 17:04:36 71

qt5编译结果.zip

qt5编译结果.zip

2021-11-04

空空如也

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

TA关注的人

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