
Acwing算法基础课
文章平均质量分 80
Acwing算法基础课
MINGgoS
这个作者很懒,什么都没留下…
展开
-
第五讲 动态规划
AcWing 2. 01背包问题 AcWing 3. 完全背包问题 AcWing 4. 多重背包问题 AcWing 5. 多重背包问题 II AcWing 9. 分组背包问题 AcWing 898. 数字三角形 AcWing 895. 最长上升子序列 AcWing 896. 最长上升子序列 II AcWing 897. 最长公共子序列 AcWing 902. 最短编辑距离 AcWing 899. 编辑距离 AcWing 282. 石子合并 AcWing 900. 整数划分 AcWing 338. 计数问题原创 2021-11-21 18:41:06 · 309 阅读 · 0 评论 -
第四讲 数学知识
原创 2021-10-29 15:10:07 · 115 阅读 · 0 评论 -
第三讲 搜索与图论
AcWing 842. 排列数字 本题用的算法思想为回溯法 排列数字1,2,3的解空间树: 可行解共有6种 顺序图解: #include<iostream> using namespace std; const int N = 10; int n; int path[N]; bool st[N]; void dfs(int u) { if(u == n) //边界条件 { for(int i = 0; i < n; i ++ ) printf("%d ",原创 2021-10-29 14:55:57 · 396 阅读 · 0 评论 -
第二讲 数据结构
AcWing 826. 单链表 e[i]: 存放需要存入的值 ne[i]:存放下一个节点的下标 idx :记录当前的操作的位置 插入头结点 利用一个head指针记录头结点的位置 void add_to_head(int x) { e[idx] = x, ne[idx] = head, head = idx ++ ; } 插入操作 void add(int k, int x) { e[idx] = x; //e[idx]记录新插入的节点的值 ne[idx] = ne[k]; /原创 2021-10-28 11:54:52 · 353 阅读 · 0 评论 -
第一讲 基础算法
AcWing 785. 快速排序 快速排序本质上是分治法 分解成子问题 递归处理子问题 合并子问题 #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 x原创 2021-10-23 15:29:54 · 151 阅读 · 0 评论