acwing算法基础课
文章目录
- 第一章 基础算法
- 快速排序
- 归并排序
- 二分
- 高精度
- 前缀和与差分
- 双指针算法
- 位运算
- 离散化
- 区间合并
- 第二章 数据结构
- 单链表
- 双链表
- 栈
- 队列
- 单调栈
- 单调队列
- KMP
- Trie
- 并查集
- 堆
- 哈希表
- C++ STL
- 第三章 搜索与图论
- DFS
- BFS
- 树与图的深度优先遍历
- 树与图的广度优先遍历
- 拓扑排序
- Dijkstra
- bellman-ford
- spfa
- Floyd
- Prim
- Kruskal
- 染色法判定二分图
- 匈牙利算法
基础课笔记
第一章 基础算法
包括排序、二分、高精度、前缀和与差分、双指针算法、位运算、离散化、区间合并等内容。
快速排序
- 快速排序
- 第k个数
归并排序
- AcWing 787. 归并排序
- AcWing 788. 逆序对的数量
二分
- AcWing 789. 数的范围
- AcWing 790. 数的三次方根
高精度
- AcWing 791. 高精度加法
- AcWing 792. 高精度减法
- AcWing 793. 高精度乘法
- AcWing 794. 高精度除法
前缀和与差分
- AcWing 795. 前缀和
- AcWing 796. 子矩阵的和
- AcWing 797. 差分
- AcWing 798. 差分矩阵
双指针算法
- AcWing 799. 最长连续不重复子序列
- AcWing 800. 数组元素的目标和
- AcWing 2816. 判断子序列
位运算
- AcWing 801. 二进制中1的个数
离散化
- AcWing 802. 区间和
区间合并
- AcWing 803. 区间合并
第二章 数据结构
包括单链表,双链表,栈,队列,单调栈,单调队列,KMP,Trie,并查集,堆,哈希表等内容。
单链表
双链表
栈
队列
单调栈
单调队列
KMP
Trie
并查集
堆
哈希表
C++ STL
vector, 变长数组,倍增的思想
- size() 返回元素个数
- empty() 返回是否为空
- clear() 清空
- front()/back()
- push_back()/pop_back()
- begin()/end()
- []
支持比较运算,按字典序
pair<int, int>
- first, 第一个元素
- second, 第二个元素
- 支持比较运算,以first为第一关键字,以second为第二关键字(字典序)
string,字符串
- size()/length() 返回字符串长度
- empty()
- clear()
- substr(起始下标,(子串长度)) 返回子串
- c_str() 返回字符串所在字符数组的起始地址
queue, 队列
- size()
- empty()
- push() 向队尾插入一个元素
- front() 返回队头元素
- back() 返回队尾元素
- pop() 弹出队头元素
priority_queue, 优先队列,默认是大根堆
- size()
- empty()
- push() 插入一个元素
- top() 返回堆顶元素
- pop() 弹出堆顶元素
- 定义成小根堆的方式:priority_queue<int, vector, greater> q;
stack, 栈
- size()
- empty()
- push() 向栈顶插入一个元素
- top() 返回栈顶元素
- pop() 弹出栈顶元素
deque, 双端队列
- size()
- empty()
- clear()
- front()/back()
- push_back()/pop_back() 从后插入弹出
- push_front()/pop_front() 从前插入弹出
- begin()/end()
- []
set, map, multiset, multimap, 基于平衡二叉树(红黑树),动态维护有序序列
- size()
- empty()
- clear()
- begin()/end()
- ++, – 返回前驱和后继,时间复杂度 O(logn)
set/multiset
- insert() 插入一个数
find() 查找一个数
count() 返回某一个数的个数
erase()
(1) 输入是一个数x,删除所有x O(k + logn)
(2) 输入一个迭代器,删除这个迭代器
lower_bound()/upper_bound()lower_bound(x) 返回大于等于x的最小的数的迭代器
upper_bound(x) 返回大于x的最小的数的迭代器
map/multimap
- insert() 插入的数是一个pair
- erase() 输入的参数是pair或者迭代器
- find()
- [] 注意multimap不支持此操作。 时间复杂度是 O(logn)
- lower_bound()/upper_bound()
unordered_set, unordered_map, unordered_multiset, unordered_multimap, 哈希表
- 和上面类似,增删改查的时间复杂度是 O(1)
- 不支持 lower_bound()/upper_bound(), 迭代器的++,–
bitset, 圧位
bitset<10000> s;
~, &, |, ^
>>, <<
==, !=
[]
count() 返回有多少个1
any() 判断是否至少有一个1
none() 判断是否全为0
set() 把所有位置成1
set(k, v) 将第k位变成v
reset() 把所有位变成0
flip() 等价于~
flip(k) 把第k位取反
第三章 搜索与图论
包括DFS,BFS,树与图的深度优先遍历,树与图的广度优先遍历,拓扑排序,Dijkstra,bellman-ford,spfa,Floyd,Prim,Kruskal,染色法判定二分图,匈牙利算法等内容。
DFS
BFS
树与图的深度优先遍历
树与图的广度优先遍历
拓扑排序
Dijkstra
bellman-ford
spfa
Floyd
Prim
Kruskal
染色法判定二分图
匈牙利算法
acwing算法基础课相关推荐
- 算法与数据结构模版(AcWing算法基础课笔记,持续更新中)
AcWing算法基础课笔记 文章目录 AcWing算法基础课笔记 第一章 基础算法 1. 排序 快速排序: 归并排序: 2. 二分 整数二分 浮点数二分 3. 高精度 高精度加法 高精度减法 高精度乘 ...
- 背包四讲 (AcWing算法基础课笔记整理)
背包四讲 背包问题(Knapsack problem)是一种组合优化的NP完全问题.问题可以描述为:给定一组物品,每种物品都有自己的重量和价格,在限定的总重量内,我们如何选择,才能使得物品的总价格最高 ...
- AcWing算法基础课 第一讲小结(持续更新中)
目录 前言 一.快速排序法及其扩展 快速排序法 介绍 思路 + 步骤 模拟代入 模板 练习 扩展(求第k个数) 思路 代码 二.归并排序法 归并排序 思路 思路 + 步骤 模拟代入 模板 练习 应用( ...
- AcWing 算法基础课第三节基础算法3 双指针、位运算、离散化、区间合并
1.该系列为ACWing中算法基础课,已购买正版,课程作者为yxc 2.y总培训真的是业界良心,大家有时间可以报一下 3.为啥写在这儿,问就是oneNote的内存不够了QAQ ACwing C++ 算 ...
- AcWing 算法基础课第一节基础算法1排序、二分
1.该系列为ACWing中算法基础课,已购买正版,课程作者为yxc 2.y总培训真的是业界良心,大家有时间可以报一下 3.为啥写在这儿,问就是oneNote的内存不够了QAQ ACwing C++ 算 ...
- ACwing算法基础课全程笔记(2021年8月12日开始重写+优化)
更好的阅读体验 ※基础模板 2021年8月12日开始对基础课笔记进行重写+优化 请大家支持AcWing正版,购买网课能让自己获得更好的学习体验哦~ 链接:https://www.acwing.com/ ...
- AcWing算法基础课第一讲(2):高精度加减乘除、前缀和、差分
文章目录 1. 高精度加法 2. 高精度减法 3. 高精度乘低精度 4. 高精度除以低精度 5. 一维前缀和 6. 二维前缀和 7. 一维差分 8. 二维差分 1. 高精度加法 这里讲解两个大整数的加 ...
- Acwing - 算法基础课 - 笔记(数学知识 · 二)
文章目录 数学知识(二) 欧拉函数 公式法 筛法 欧拉定理 快速幂 扩展欧几里得算法 中国剩余定理 数学知识(二) 这一小节主要讲解的内容是:欧拉函数,快速幂,扩展欧几里得算法,中国剩余定理. 这一节 ...
- Acwing算法基础课学习笔记
Acwing学习笔记 第一章 基础算法 快速排序 归并排序 二分查找 前缀和与差分 差分 位运算 离散化 第二章 数据结构 单链表 双链表 栈 队列 单调栈 单调队列 KMP算法 Trie 并查集 堆 ...
- Acwing - 算法基础课 - 笔记(数学知识 · 一)
文章目录 数学知识(一) 质数 质数的判定 分解质因数 朴素思路 优化 筛选质数 朴素筛法 埃氏筛法 线性筛法 小结 约数 求一个数的所有约数 求约数个数 求约数之和 求最大公约数 数学知识章节,主要 ...
最新文章
- valgrind-3.11.0 交叉编译
- unity and MySql
- chrome 插件 页面请求转发_巧用Chrome插件二三事
- soapui 证书_SoapUI入门之附件上传和配置Https请求
- autoreconnect mysql true_连接数据库超时设置autoReconnect=true
- 抗住 60 亿次攻击,起底阿里云安全的演进之路 | 问底中国 IT 技术演进
- [下载] Zend studio 8 Windows版
- 剑指offer 33 把数组排成最小的数
- 10.卷2(进程间通信)---Posix信号量
- 使用OBS做无延时/低延迟直播(实测)
- C语言实验源程序保存,c语言实验1程序开发环境.doc
- 懒人必备爬虫神器—playwright
- 多视图聚类方向:子空间学习
- vue3兄弟之间传值兄弟之间方法怎么调用?保姆级讲解
- 扣图神器, 用Python 5行代码解决
- python34 pandas_python 3 科学计算之pandas入门(一)
- 你关心的2023年PMP的考试时间和地点在这里
- 大白菜u盘可以装linux,一个U盘搞定mac的安装 可以安装win7
- strict alias 的含义
- Qt平台添加OpenCV库