![](https://img-blog.csdnimg.cn/cabcea2c3e044fa4aa2f651307d59e62.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Acwing算法基础
文章平均质量分 65
Acwing算法基础课笔记 Ctrl + F直接搜题 前三讲都完结了 ,后面有空我就补 , 每次复习都会更新.
CPT1024
C/C++领域新星创作者
展开
-
DP 动态规划(一) ——背包问题 学习总结(闫氏DP分析法)
AcWing 2. 01背包问题AcWing 3. 完全背包问题AcWing 4. 多重背包问题AcWing 5. 多重背包问题 AcWing 9. 分组背包问题原创 2022-03-25 21:48:38 · 5215 阅读 · 87 评论 -
【算法基础】图论之DFS&BFS&拓扑排序 万字总结
AcWing 846. 树的重心AcWing 847. 图中点的层次AcWing 848. 有向图的拓扑序列题解 笔记原创 2022-03-23 07:42:48 · 4065 阅读 · 74 评论 -
【算法基础】BFS 广度优先搜索——AcWing 844. 走迷宫 AcWing 845. 八数码 题解
AcWing 844. 走迷宫 AcWing 845. 八数码 题解原创 2022-03-20 23:37:13 · 2525 阅读 · 76 评论 -
【算法基础】DFS深度优先算法 —— AcWing 843. n-皇后问题 AcWing 842. 排列数字
Acwing算法基础课笔记 题解AcWing 843. n-皇后问题 AcWing 842. 排列数字原创 2022-03-18 11:17:09 · 3403 阅读 · 83 评论 -
【C++】蓝桥杯必备 算法竞赛常用STL万字总结
C++ STL标准库 常用函数总结 算法竞赛必备原创 2022-03-15 22:18:52 · 29873 阅读 · 170 评论 -
【Acwing算法基础】 中缀 & 后缀表达式 (逆波兰表达式求值 | C++)
代码】【Acwing】中缀&后缀表达式(逆波兰表达式求值|C++)原创 2022-07-25 15:10:51 · 388 阅读 · 0 评论 -
【算法基础】 树形DP AcWing 285. 没有上司的舞会 AcWing 1220. 生命之树 (闫氏DP分析法 | DFS)
题目描述思路状态表示状态计算:f是s字节的子结点选:f[u][0] += max(f[j][0], f[j][1])不选:f[u][1] += f[j][1]C++代码#include <iostream>#include <cstring>#include <algorithm>const int N = 6010;using namespace std;int n;int happy[N];//每个人的高兴度int h[N].原创 2022-05-18 21:22:51 · 218 阅读 · 0 评论 -
【算法基础】 数位DP Acwing338. 计数问题
题目描述链接思路代码1代码2🌹感谢阅读🌹原创 2022-05-05 16:43:54 · 415 阅读 · 0 评论 -
【算法基础】计数类DP AcWing 900. 整数划分 (闫氏dp分析法)
题目描述思路1 (完全背包)给定一个正整数n,问有多少种方案使得n=x1+x2+…+xn,不需要考虑顺序。5的所有情况↓闫氏DP分析法:状态表示:f[i][j]f[i][j]f[i][j] 表示所有1~i中选,且体积恰好是j的选法的数量属性:COUNT状态计算:推导过程↓其中s表示选i的个数数学归纳法得出状态表示:f[i][j]=f[i−1][j]+f[i][j−1]f[i][j] = f[i - 1][j] + f[i][j - 1]f[i][j]=f[i−1][j]+f[..原创 2022-04-28 17:53:44 · 823 阅读 · 0 评论 -
【算法基础】二分图 (染色法|匈牙利算法)
了解二分图概念若把图分为俩个不相交的非空集合V1 和 V2,使得图中的每一条边分别连接V1 中的一个顶点 和V2中的一个顶点(此时图中则一定不存在一条边连接一个集合中的俩个顶点),则该图称为二分图。二分图的等价条件一个图是二分图当且仅当它不包含奇数环作为子图。一个图是二分图当且仅当它的着色数是 2。一个图是二分图当且仅当它的谱是正负对称的。奇数环:由奇数条边形成的一个环树就是一个二分图左图是一个二分图,gfec为一个集合 abc为一个集合,边数为10。右图就不是一个二分图,观原创 2022-04-26 20:55:28 · 752 阅读 · 1 评论 -
【算法基础】图解 最小生成树 (Prim|Kruskal) 859. Kruskal算法求最小生成树 858. Prim算法求最小生成树
普利姆算法(Prim) O(n2) 【稠密图】克鲁斯卡尔(Krushkal) O(mlogm)【稀疏图】🌹感谢阅读🌹原创 2022-04-24 10:22:49 · 1239 阅读 · 6 评论 -
【算法基础】 Acwing 图论 之 最短路 (Dijkstra|Bellman_ford|Spfa|Floyd))
算法基础笔记原创 2022-04-21 09:04:03 · 1257 阅读 · 5 评论 -
【算法基础】AcWing 148. 合并果子 (Huffman树 |优先队列|小根堆)
Acwing 题目描述思路C++代码题目描述题目链接思路需要用到优先队列 的小根堆,保证每次合并最小的堆,并且支持删除插入交换操作,使得每次左边的值最小。C++代码#include <bits/stdc++.h>using namespace std;int main () { int n; cin >> n; priority_queue<int, vector<int>, greater<int>&原创 2022-04-07 09:39:24 · 1335 阅读 · 1 评论 -
【算法基础】837. 连通块中点的数量 (图论 + 并查集)
Acwing原创 2022-04-05 21:36:42 · 706 阅读 · 5 评论 -
【算法基础】 数论——质数&质因数分解 Acwing866. 试除法判定质数 Acwing867. 分解质因数
算法基础课 笔记原创 2022-04-04 23:37:33 · 1250 阅读 · 0 评论 -
【算法基础】差分——AcWing 798. 差分矩阵 797. 差分
差分一维差分思路C++代码二维差分1、题目2、思路3、C++代码一维差分题目链接思路差分是把一段区间的每个数同时加上或减去一个值,算法应用:将O(n)的时间复杂度优化成O(1).前缀和与差分本质是是互逆的运算理解:前缀和是前n个数相加,差分即是后n个数中每一个数的差值。核心代码b[l] =b[l] + value; //表示数组a[l]以及后面的a[l+1] a[l+2] ... a[end] 全部元素加上一个值valueb[r+1] -=b[r] - value; //表原创 2022-04-03 09:06:44 · 716 阅读 · 1 评论 -
【算法基础】Acwing.788. 逆序对的数量 (归并排序)
归并排序习题 刷题 笔记 题解 打卡原创 2022-04-02 18:52:01 · 506 阅读 · 1 评论 -
【算法基础】二分查找 模板 AcWing 789. 数的范围 AcWing 790. 数的三次方根
Acwing二分查找 整数二分算法 模板C++代码 [朴素 和 lower_bound] 浮点数二分 刷题笔记 题解原创 2022-04-01 19:33:01 · 2544 阅读 · 1 评论 -
【算法基础】动态规划[二]——线性&区间DP(闫氏DP分析法)
一、线性DP1、AcWing 898. 数字三角形算法 1算法22、AcWing895. 最长上升子序列 [DP]3、AcWing 897. 最长公共子序列4、最短编辑距离5、编辑距离二、区间DPAcWing 282. 石子合并原创 2022-03-30 23:33:10 · 1362 阅读 · 16 评论 -
Acwing786. 第k个数 ( Sort /快排)
Acwing786. 第k个数 题目描述思路代码1代码2 (sort)前言欢迎关注我的专栏,准备写完算法基础所有题解🚀🚀🚀 专栏链接题目描述思路二分 / Sort代码1#include <iostream>using namespace std;const int N=1e5+10;int n,k,q[N]; //在C++ 局部变量如果与全局变量重名 优先使用局部变量int quick_sort (int l,int r,int k) { if原创 2022-03-27 23:22:01 · 1698 阅读 · 1 评论 -
【C++】 AcWing 841. 字符串哈希 (详细) (算法基础课笔记)
...原创 2022-03-12 09:44:25 · 2303 阅读 · 5 评论 -
【C++】哈希表 AcWing 840. 模拟散列表 拉链法+开放寻址法(算法基础课笔记)
目录一、题目1、题目二、思路1、知识点2、代码实现3、模板三、AC代码四、总结前言 你好啊,我最近在学acwing的算法基础课,备战蓝桥杯,如果你也是一样的话,欢迎一起学习~一、题目1、题目题目链接{点击跳转}二、思路1、知识点将任意一个对象传进来或者任何一个数据传进来,然后映射到一个位置int下标index eg、 String哈希碰撞↑拉链法时间复杂度 几乎O(1) 除非做的很差or size太小了 导致O(n)应用:把较大的数据映射到较小的数2、代码实原创 2022-03-10 14:16:48 · 1813 阅读 · 2 评论 -
【C++】数组模拟堆操作 AcWing 839. 模拟堆(算法基础课笔记)
目录一、题目&解读1、题目2、题目解读二、思路1、滑动窗口2、代码实现3、模板三、AC代码四、总结前言 你好啊,我最近在学acwing的算法基础课,备战蓝桥杯,如果你也是一样的话,欢迎一起学习~一、题目&解读1、题目题目链接{点击跳转}2、题目解读二、思路1、滑动窗口2、代码实现``3、模板三、AC代码四、总结学数据结构 最主要的还是要画图,先画一遍,代码自然就能够写了。结尾:感谢你能看完,希望对你有帮助 ,如有错误欢迎指正,码字不易,给个赞呗原创 2022-02-21 22:48:42 · 899 阅读 · 1 评论 -
【C++】数组模拟堆操作 AcWing 838. 堆排序 (算法基础课笔记)
目录一、题目&解读1、题目2、题目解读二、思路1、知识点2、代码实现3、模板三、AC代码四、总结前言 你好啊,我最近在学acwing的算法基础课,备战蓝桥杯,如果你也是一样的话,欢迎一起学习~一、题目&解读1、题目题目链接{点击跳转}2、题目解读二、思路1、知识点堆 (heap)堆中某个节点的值总是不大于或不小于其父节点的值;堆总是一棵完全二叉树。3、堆的存储:左儿子x 右儿子x+12、代码实现``3、模板三、AC代码四、总结学数据结构原创 2022-02-20 00:25:53 · 357 阅读 · 1 评论 -
【算法基础】并查集 AcWing 836. 合并集合
算法基础课 笔记原创 2022-02-19 22:59:33 · 645 阅读 · 0 评论 -
【C++】Day20 Tire 树 Acwing.835 Trie字符串统计(算法基础课笔记)
树原创 2022-02-18 18:10:59 · 674 阅读 · 11 评论 -
【算法基础】KMP算法 AcWing 831. KMP字符串 (算法基础课笔记)
11原创 2022-02-16 22:53:08 · 562 阅读 · 0 评论 -
【C++】 Day18 单调队列 Acwing154. 滑动窗口 (算法基础课笔记)
单调队列 Acwing154. 滑动窗口 (算法基础课笔记)一、题目&解读1、题目二、思路1、滑动窗口最大值2、代码实现3、模板三、AC代码四、总结前言 你好啊,我最近在学acwing的算法基础课,备战蓝桥杯,如果你也是一样的话,欢迎一起学习交流~一、题目&解读1、题目题目链接{点击跳转}二、思路1、滑动窗口最大值以滑动窗口最大值为例,如下图图的链接2、代码实现时间复杂度 O(n) int head = 0, tail = -1; for (i原创 2022-02-14 18:14:44 · 909 阅读 · 0 评论 -
【C++】Day17 单调栈 AcWing 830. 单调栈 (算法基础课笔记)
AcWing 830. 单调栈原创 2022-02-13 20:47:41 · 986 阅读 · 0 评论 -
【C++】Day16数组模拟队列 AcWing 829. 模拟队列 (算法基础课笔记)
Day14双链表 AcWing 827. 双链表一、题目&解读1、题目二、思路1、知识点2、实现初始化3、实现插入操作4、删除操作实现三、AC代码四、总结前言 你好啊,我最近在学acwing的算法基础课,备战蓝桥杯,如果你也是一样的话,欢迎一起学习~一、题目&解读1、题目题目链接{点击跳转}二、思路1、知识点队列 Queue 先进先出的一种数据结构。栈和队列共同点 :1、删除和增添的时间复杂度都为O(1)2、查询O(n) 因为他们是无序的,需要遍历2、原创 2022-02-11 20:06:25 · 669 阅读 · 0 评论 -
【C++】 Day15数组模拟栈的过程 AcWing 828. 模拟栈 (算法基础课笔记)
AcWing 828. 模拟栈 一、题目&解读1、题目2、题目解读 &知识点二、思路1、定义2、实现初始化3、实现压栈和出栈4、判断栈是否为空5、算法模板三、AC代码四、总结前言 你好啊,我最近在学acwing的算法基础课,备战蓝桥杯,如果你也是一样的话,欢迎一起学习~一、题目&解读1、题目题目链接{点击跳转}2、题目解读 &知识点本题考察栈的知识:后进者先出,先进者后出,这就是典型的“栈”结构。压栈:给栈中底部存放数据出栈:从栈顶部删除二原创 2022-02-10 21:19:25 · 359 阅读 · 0 评论 -
【C++】Day14 数组实现双链表 AcWing 827. 双链表 (算法基础课笔记)
Day14双链表 AcWing 827. 双链表原创 2022-02-09 22:43:44 · 1116 阅读 · 8 评论 -
【C++】Day13 数组实现单链表 Acwing.826 单链表 (详细)
【C++】Day13 数组实现单链表 Acwing.826 单链表原创 2022-02-08 16:00:08 · 1728 阅读 · 0 评论 -
【C++】 Day12 区间合并 AcWing 803. 区间合并 (详细)
传送门1、题目2、思路3、AC代码1、题目2、思路3、AC代码原创 2022-02-06 16:56:09 · 675 阅读 · 0 评论 -
【算法基础】离散化 AcWing 802. 区间和 (详细)
传送门1、题目2、思路3、AC代码1、题目 链接:https://www.acwing.com/activity/content/problem/content/836/2、思路3、AC代码原创 2022-02-06 01:00:35 · 5810 阅读 · 19 评论 -
【C++】 位运算 AcWing 801. 二进制中1的个数
传送门 ↓ ↓ ↓目录1、题目2、思路&知识点3、AC代码1、题目题目链接2、思路&知识点使用lowbit 函数 :返回x的最后一位1 eg lowbit(10) 输出 10 lowbit (16)输出10000int lowbit(int x) { return x & -x ; }-x=(~x + 1 ) 负x 表示 x的补码eg x=10二进制位表示x=1010 .......原创 2022-02-01 16:08:23 · 703 阅读 · 0 评论 -
[C++] Day10 双指针运算 Acwing 799. 最长连续不重复子序列
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分原创 2022-02-01 15:13:56 · 661 阅读 · 0 评论 -
【算法基础】前缀和 Acwing 796. 子矩阵的和 AcWing 795. 前缀和
Day6 前缀和 Acwing 796. 子矩阵的和 AcWing 795. 前缀和 【C++】1、一维 前缀和2、子矩阵的和1、一维 前缀和2、子矩阵的和1、一维 前缀和题目思路 先列表计算 每个前n项和O(n) 然后直接输入计算 O(1)公式 s[i]=s[i-1]+a[i]作用 : 快速求一段数之和#include <iostream>using namespace std;const int N=100010;int n,m;i原创 2022-01-24 16:19:32 · 550 阅读 · 0 评论 -
【C++】Day 3. Acwing 791.高精度加法 (acwing算法基础课笔记)
昨天恶补了一天的C++语法题目链接Acwing.793 高精度加法题目思路: Step1、数据存储 [从个位开始存储] Step2、人工模拟加法代码#include <iostream>#include <vector>using namespace std;const int N=1e6+10;vector<int> add(vector<int> &A,vector&l...原创 2022-01-20 20:29:57 · 515 阅读 · 2 评论 -
【C++】Day 5 模拟除法乘法 AcWing 793. 高精度乘法 AcWing 794. 高精度除法 (算法基础课笔记)
题目链接 793. 高精度乘法 794. 高精度除法题目793. 高精度乘法思路 :和高精度加法很相似 代码: #include <iostream>#include <vector> using namespace std; //C=A*b A表示高精度的数 b看作整体直接乘vector<int> mul(vector<int> &A,int b) { ...原创 2022-01-23 11:21:27 · 189 阅读 · 2 评论