本节主要学习双指针、位运算、离散化、区间合并等知识。
双指针算法
常见类型:指向两个不同序列 或者 指向同一个系列的不同位置。

通用模版
for(i = 0, j =0; i < n; i++){
while(j<i && check(i,j)) j++;
//每道题目的具体逻辑
}
本节主要学习双指针、位运算、离散化、区间合并等知识。
常见类型:指向两个不同序列 或者 指向同一个系列的不同位置。

for(i = 0, j =0; i < n; i++){
while(j<i && check(i,j)) j++;
//每道题目的具体逻辑
} 暑假预习的C++,突然发现有笔记,然后就发现我就学了一点就没学了,主要内容为C++的变量类型、命名空间和类,主要学习与C不同的内容,更多为了写算法。
auto 是C++11引入的一个关键字,用来自动推断变量的类型。也就是说,你声明变量时,不用显式写出类型,编译器会根据初始化表达式自动推断变量的类型。
int a = 2;
auto b = a;//b的数据类型也是int
const int a = 2;
auto b = a;//b的数据类型的const int
auto a;//错误,必须有初始化定义也可以用来写函数的返回类型。
auto 可以推断出const类型和指针,但是无法推出引用类型。
本节内容主要为高精度运算、前缀和与差分的主要思想和代码。
常考类型:
使用数组进行存储,每一个位置存一个数,个位数存到开头(数组0位置)。
竖式加减乘除,每一位是 $(A_i+B_i+t) \% 10$ ,其中 $t$ 为上一位运算的进位。
本节内容为部分排序和查找算法,数据结构课讲过,不过当时期末时间紧,没去听课,虽然PPT看懂了,但是从没有自己完整敲过,现在原理也都忘了,学一遍发现确实有些地方容易写错。
主要思想:分治
q[l]或者q[(l+r)/2]或者q[r];把q[ ]中从l到r遍历:
设定两个指针,从左右两端开始:
持续移动左右指针并交换元素,直到两个指针相遇,此时结束
前情提要是想暑假预习点东西,学了点java和面向对象之后发现忘得太快了,还是得自己多敲一下,以及记点笔记方便看。故先通过菜鸟教程自学了一些markdown,顺便之前的阿里云300学生券快到期了,又开了台服务器,所以搭了个笔记站。
粗体语法:
这个是**粗体**
这个也是__粗体__斜体语法:
这是*斜体*
这个也是_斜体_粗斜体(前两个组合)语法:
这个是***粗斜体***
这个也是___粗斜体___