《算法竞赛进阶指南》学习笔记
文章平均质量分 95
《算法竞赛进阶指南》学习笔记
繁凡さん
只想当个小透明,就图一乐^q^,希望可以做出一些微小的贡献(目前研究方向:自然语言处理、深度学习中的对抗攻击、元学习,欢迎大佬们来与我交流^0^)
展开
-
算法竞赛知识合集 目录(博客中转站)
《算法竞赛进阶指南》,跟着我学完这本书,你即可获得NOIP500分以上的能力或者得到ACM-ICPC金牌爷的实力!原创 2020-04-18 18:45:22 · 11775 阅读 · 5 评论 -
0x56. 动态规划 - 状态压缩DP(习题详解 × 7)
目录本系列博客是《算法竞赛进阶指南》的学习笔记,包含书中的部分重要知识点、例题解题报告及我个人的学习心得和对该算法的补充拓展,仅用于学习交流和复习,无任何商业用途。博客中部分内容来源于书本和网络 ,由我个人整理总结。部分内容由我个人编写而成,如果想要有更好的学习体验或者希望学习到更全面的知识,请于京东搜索购买正版图书:《算法竞赛进阶指南》——作者李煜东,强烈安利,好书不火系列,谢谢配合。%学习笔记目录链接: 学习笔记目录链接%整理的算法模板合集: ACM模板%点我看算法全家桶系列!!!原创 2021-08-20 22:25:34 · 819 阅读 · 2 评论 -
0x55. 动态规划 - 环形与后效性处理(例题详解 × 6)
目录0x55.1 环形结构上的动态规划问题两次DP法破环成链法0x55.2 有后效性的状态转移方程本系列博客是《算法竞赛进阶指南》的学习笔记,包含书中的部分重要知识点、例题解题报告及我个人的学习心得和对该算法的补充拓展,仅用于学习交流和复习,无任何商业用途。博客中部分内容来源于书本和网络 ,由我个人整理总结。部分内容由我个人编写而成,如果想要有更好的学习体验或者希望学习到更全面的知识,请于京东搜索购买正版图书:《算法竞赛进阶指南》——作者李煜东,强烈安利,好书不火系列,谢谢配合。%学习笔记目录链接:原创 2021-08-19 22:19:24 · 1217 阅读 · 0 评论 -
0x54. 动态规划 - 树形DP(习题详解 × 12)
0x54. 动态规划 - 树形DP(习题详解 × 12)原创 2021-08-18 21:04:57 · 1097 阅读 · 0 评论 -
0x53. 动态规划 - 区间DP(习题详解 × 8)
整理的算法模板合集: ACM模板点我看算法全家桶系列!!!实际上是一个全新的精炼模板整合计划文章目录0x53. 动态规划 - 区间DPProblem A. 最优矩阵链乘Problem B. 括号序列Problem C. 矩阵取数游戏[NOIP2007 提高组]Problem D.262144 P(思维,优化转移)Problem E. 多边形Problem F. 金字塔Problem G. Two Rabbits(环形处理)Problem H. Blocks(辅助维)0x53. 动态规划 -原创 2021-08-17 21:53:34 · 779 阅读 · 5 评论 -
0x52. 动态规划 - 背包(习题详解 × 19)
目录0x52. 动态规划 - 背包0/10/10/1 背包完全背包多重背包分组背包本系列博客是《算法竞赛进阶指南》的学习笔记,包含书中的部分重要知识点、例题解题报告及我个人的学习心得和对该算法的补充拓展,仅用于学习交流和复习,无任何商业用途。博客中部分内容来源于书本和网络 ,由我个人整理总结。部分内容由我个人编写而成,如果想要有更好的学习体验或者希望学习到更全面的知识,请于京东搜索购买正版图书:《算法竞赛进阶指南》——作者李煜东,强烈安利,好书不火系列,谢谢配合。%学习笔记目录链接: 学习笔记目录原创 2021-08-16 22:48:44 · 1204 阅读 · 0 评论 -
0x51.动态规划 - 线性DP(习题详解 × 10)
目录本系列博客是《算法竞赛进阶指南》+《算法竞赛入门经典》+《挑战程序设计竞赛》的学习笔记, 按照《算法竞赛进阶指南》的目录顺序学习,包含书中的少部分重要知识点、例题解题报告及我个人的学习心得和对该算法的补充拓展,仅用于学习交流和复习,无任何商业用途。博客中部分内容来源于书本和网络 ,由我个人整理总结。部分内容由我个人编写而成,如果想要有更好的学习体验或者希望学习到更全面的知识,请于京东搜索购买正版图书:《算法竞赛进阶指南》——作者李煜东,强烈安利,好书不火系列,谢谢配合。下方链接为学习笔记目录链接原创 2021-08-15 21:03:33 · 1354 阅读 · 1 评论 -
0x34.数学 - 矩阵乘法
目录矩阵乘法AcWing 205. 斐波那契声明: 本系列博客是《算法竞赛进阶指南》+《算法竞赛入门经典》+《挑战程序设计竞赛》的学习笔记,主要是因为我三本都买了 按照《算法竞赛进阶指南》的目录顺序学习,包含书中的少部分重要知识点、例题解题报告及我个人的学习心得和对该算法的补充拓展,仅用于学习交流和复习,无任何商业用途。博客中部分内容来源于书本和网络(我尽量减少书中引用),由我个人整理总结(习题和代码可全都是我自己敲哒)部分内容由我个人编写而成,如果想要有更好的学习体验或者希望学习到更全面的知识,请于原创 2020-11-02 10:56:08 · 541 阅读 · 0 评论 -
0x33.数学 - 同余
目录一、模运算的一些性质二、费马小定理三、欧拉定理AcWing 202. 最幸运的数字四、拓展欧几里得算法翡蜀定理拓展欧几里得算法五、乘法逆元求乘法逆元的三种方法1.费马小定理2.扩展欧几里得3.线性递推AcWing 97. 约数之和六、线性同余方程中国剩余定理七、高次同余方程Baby step, Giant Step算法(大步小步算法)声明: 本系列博客是《算法竞赛进阶指南》+《算法竞赛入门经典》+《挑战程序设计竞赛》的学习笔记,主要是因为我三本都买了 按照《算法竞赛进阶指南》的目录顺序学习,包含书原创 2020-10-28 22:10:36 · 870 阅读 · 1 评论 -
0x32.数学知识 - 约数
目录一、约数定义算术基本定理的推论求NNN的正约数集合 - 试除法求1~N每个数的正约数集合 - 倍数法AcWing198. 反素数二、最大公约数最大公约数与最大公倍数更相减损术luogu P1072 (NOIP2009)Hankson的趣味题三、互质与欧拉函数声明: 本系列博客是《算法竞赛进阶指南》+《算法竞赛入门经典》+《挑战程序设计竞赛》的学习笔记,主要是因为我三本都买了 按照《算法竞赛进阶指南》的目录顺序学习,包含书中的少部分重要知识点、例题解题报告及我个人的学习心得和对该算法的补充拓展,仅用原创 2020-10-20 22:13:04 · 931 阅读 · 0 评论 -
0x42.数据结构进阶 - 树状数组
目录一、树状数组与逆序对A、luogu P1908 逆序对(模板题)B、AcWing 241. 楼兰图腾树状数组的拓展应用1.区间加,求单点值A、AcWing 242. 一个简单的整数问题2.区间加,区间求和AcWing 244. 谜一样的牛声明: 本系列博客是《算法竞赛进阶指南》+《算法竞赛入门经典》+《挑战程序设计竞赛》的学习笔记,主要是因为我三本都买了 按照《算法竞赛进阶指南》的目录顺序学习,包含书中的少部分重要知识点、例题解题报告及我个人的学习心得和对该算法的补充拓展,仅用于学习交流和复习,无原创 2020-07-20 22:06:33 · 766 阅读 · 0 评论 -
ACM/OI卡常技巧总结(clock大法好)
NO.10: 特殊运算优化:取模优化:inline int inc(int x,int v,int mod){x+=v;return x>=mod?x-mod:x;}//代替取模+inline int dec(int x,int v,int mod){x-=v;return x<0?x+mod:x;}//代替取模-或者对于模数p进行#define宏定义绝对值优化:inline int Abs(int a){//绝对值优化{ int b=a>>31; .原创 2020-07-18 20:33:01 · 2613 阅读 · 0 评论 -
0x6A.图论 - 网络流初步
网络流初步学习原创 2020-07-07 11:44:30 · 790 阅读 · 2 评论 -
0x68.图论 - 二分图的匹配
二分图概述二分图又称作二部图,是图论中的一种特殊模型。设G=(V,E)是一个无向图,如果顶点V可分割为两个互不相交的子集(A,B),并且图中的每条边(i,j)所关联的两个顶点i和j分别属于这两个不同的顶点集(i in A,j in B),则称图G为一个二分图。如上图就是一个标准的二分图性质:二分图不存在长度为奇数的环一、二分图的判定此题来源于《挑战程序设计竞赛》DFSvector<int> G[MAX_V];//图的表示int V;//顶点数int color[M原创 2020-06-24 16:38:55 · 673 阅读 · 0 评论 -
【欧拉回路】解题报告:luogu P6066 [USACO]Watchcow (欧拉回路详解)【模板】
欧拉回路模板题目链接:https://www.luogu.com.cn/problem/P6066O(N+M)O(N+M)O(N+M)非递归版代码 防止栈溢出欧拉回路就是给一个图,存在一条回路把所边经过且每条边只经过一次。对于无向图:存在欧拉回路的条件:每个点的度都为偶数; 存在欧拉路的条件:有且只有两个点的度为一,且这两个点分别为起点和终点;对于有向图:存在欧拉回路的条件:每个点出度等于入度;存在欧拉路的条件:存在一个点出度比入度多一作为起点,存在一点入度比出度多一作为终点,其余原创 2020-06-19 21:36:32 · 404 阅读 · 0 评论 -
0x66.图论 - Tarjan算法与无向图连通性
目录一、无向图的割点与桥割点桥/割边时间戳搜索树追溯值声明: 本系列博客是《算法竞赛进阶指南》+《算法竞赛入门经典》+《挑战程序设计竞赛》的学习笔记,主要是因为我三本都买了 按照《算法竞赛进阶指南》的目录顺序学习,包含书中的少部分重要知识点、例题解题报告及我个人的学习心得和对该算法的补充拓展,仅用于学习交流和复习,无任何商业用途。博客中部分内容来源于书本和网络(我尽量减少书中引用),由我个人整理总结(习题和代码可全都是我自己敲哒)部分内容由我个人编写而成,如果想要有更好的学习体验或者希望学习到更全面的原创 2020-06-15 22:48:44 · 1696 阅读 · 0 评论 -
【线段树合并】解题报告:luogu P4556雨天的尾巴 (树上对点差分 + 动态开点 + 线段树合并)线段树合并模板离线/在线详解
线段树合并模板原创 2020-06-13 12:08:38 · 412 阅读 · 0 评论 -
0x43.数据结构进阶 - 线段树
目录线段树的建树线段树的单点修改线段树的区间查询POJ3486A Simple Problem with Integers声明: 本系列博客是《算法竞赛进阶指南》+《算法竞赛入门经典》+《挑战程序设计竞赛》的学习笔记,主要是因为我三本都买了 按照《算法竞赛进阶指南》的目录顺序学习,包含书中的少部分重要知识点、例题解题报告及我个人的学习心得和对该算法的补充拓展,仅用于学习交流和复习,无任何商业用途。博客中部分内容来源于书本和网络(我尽量减少书中引用),由我个人整理总结(习题和代码可全都是我自己敲哒)部分原创 2020-06-08 17:19:14 · 694 阅读 · 0 评论 -
0x63.图论 - 树的直径与最近公共祖先
树的直径于LCA最近公共祖先原创 2020-06-07 12:23:26 · 667 阅读 · 0 评论 -
0x62.图论 - 最小生成树
KruskalKruskalKruskal算法可以简单理解为按边贪心。PrimPrimPrim算法是以更新过的节点的连边找最小值一、KruskalKruskalKruskal算法每次选择权值最小的边,若该边两点没有加入集合,就将他加入。起初每个点的都是一个独立的集合,把边权从小到达排序,按照边权枚举边,用并查集判断两个是否在同一个集合,如果在一个集合就跳过当前边,反之就联通这两个集合。时间复杂度:O(mlogm)O(mlogm)O(mlogm)1.P3366 【模板】最小生成树题目描述如题,原创 2020-06-05 20:47:58 · 411 阅读 · 0 评论 -
0x61.图论 - 最短路
对于一张无向图,我们可以把无向边看作两条方向相反的有向边,所以对于图我们都将其作为有向图来看待。一般用邻接表来存储图,空间复杂度为O(n+m)O(n+m)O(n+m)。int nex[N],ver[N],head[N],edge[N],tot;void add(int u,int v,int val){ ver[++tot] = v; egde[tot] = val; nex[tot] = head[u]; head[u] = tot;}for(int i= he原创 2020-06-02 22:33:17 · 970 阅读 · 0 评论 -
0x41.数据结构进阶 - 并查集
目录声明: 本系列博客是《算法竞赛进阶指南》+《算法竞赛入门经典》+《挑战程序设计竞赛》的学习笔记,主要是因为我三本都买了 按照《算法竞赛进阶指南》的目录顺序学习,包含书中的少部分重要知识点、例题解题报告及我个人的学习心得和对该算法的补充拓展,仅用于学习交流和复习,无任何商业用途。博客中部分内容来源于书本和网络(我尽量减少书中引用),由我个人整理总结(习题和代码可全都是我自己敲哒)部分内容由我个人编写而成,如果想要有更好的学习体验或者希望学习到更全面的知识,请于京东搜索购买正版图书:《算法竞赛进阶指南原创 2020-05-29 21:45:17 · 989 阅读 · 1 评论 -
0x35.数论 - 组合数学与计数
组合数学相关知识合集原创 2020-05-27 17:32:54 · 1008 阅读 · 0 评论 -
0x31.数论 - 质数
数论里最基础的质数的相关问题原创 2020-05-26 12:41:14 · 629 阅读 · 0 评论 -
0x22.搜索 - 深度优先搜索
深度优先搜索算法是一种用于遍历或搜索树或图的算法,本篇博客带你深入浅出了解DFS,从基础习题到进(超)阶(难)例题,帮你掌握DFS的精髓!原创 2020-05-24 22:29:48 · 492 阅读 · 0 评论 -
0x05.基本算法 - 排序
离散化因为语言种类太多了,而实际用到的语言只有n+m种,实际上对答案产生影响的只有n种科学家会的语言。所以对n个科学家会的语言直接进行离散化,将语言压缩到n种就行了。重载一下运算符排序得最大值即可。#include<iostream>#include<bits/stdc++.h>#include<algorithm>#include<cstdio>#include<cstring>#include<queue>#inc.原创 2020-05-22 21:56:50 · 487 阅读 · 0 评论 -
0x21.搜索 - 树与图的遍历、拓扑排序
目录一、树与图的深度优先遍历及树的一些性质1.树与图的深度优先遍历2.时间戳3.树的DFS序(树链剖分前驱知识)4.树的深度5.树的重心与sizesizesize6.图的连通块划分二、树与图的广度优先搜索三、拓扑排序声明: 本系列博客是《算法竞赛进阶指南》+《算法竞赛入门经典》+《挑战程序设计竞赛》的学习笔记,主要是因为我三本都买了 按照《算法竞赛进阶指南》的目录顺序学习,包含书中的少部分重要知识点、例题解题报告及我个人的学习心得和对该算法的补充拓展,仅用于学习交流和复习,无任何商业用途。博客中部分内原创 2020-05-22 21:48:12 · 1105 阅读 · 0 评论 -
0x17.基础数据结构 - 二叉堆
目录0.AcWing 145. 超市声明: 本系列博客是《算法竞赛进阶指南》+《算法竞赛入门经典》+《挑战程序设计竞赛》的学习笔记,主要是因为我三本都买了 按照《算法竞赛进阶指南》的目录顺序学习,包含书中的少部分重要知识点、例题解题报告及我个人的学习心得和对该算法的补充拓展,仅用于学习交流和复习,无任何商业用途。博客中部分内容来源于书本和网络(我尽量减少书中引用),由我个人整理总结(习题和代码可全都是我自己敲哒)部分内容由我个人编写而成,如果想要有更好的学习体验或者希望学习到更全面的知识,请于京东搜索原创 2020-05-19 18:05:10 · 511 阅读 · 0 评论 -
0x16.基本数据结构 — Trie树(字典树)+ A C 自 动 机
目录TireTireTireTireTireTire的基本操作0.初始化1.插入2.检索声明: 本系列博客是《算法竞赛进阶指南》+《算法竞赛入门经典》+《挑战程序设计竞赛》的学习笔记,主要是因为我三本都买了 按照《算法竞赛进阶指南》的目录顺序学习,包含书中的少部分重要知识点、例题解题报告及我个人的学习心得和对该算法的补充拓展,仅用于学习交流和复习,无任何商业用途。博客中部分内容来源于书本和网络(我尽量减少书中引用),由我个人整理总结(习题和代码可全都是我自己敲哒)部分内容由我个人编写而成,如果想要有更原创 2020-05-13 22:07:06 · 817 阅读 · 0 评论 -
0x15.基本数据结构 — 字符串 (KMP算法(含详细证明)和最小表示法)
目录一、KMP模式匹配1.引理:2.引理证明:3.使用优化的算法计算nextnextnext数组:4.luogu P3375 【模板】KMP字符串匹配5.UVA1328 Period二、字符串的最小表示1.AcWing 137. 雪花雪花雪花声明: 本系列博客是《算法竞赛进阶指南》+《算法竞赛入门经典》+《挑战程序设计竞赛》的学习笔记,主要是因为我三本都买了 按照《算法竞赛进阶指南》的目录顺序学习,包含书中的少部分重要知识点、例题解题报告及我个人的学习心得和对该算法的补充拓展,仅用于学习交流和复习,无原创 2020-05-10 22:18:33 · 3982 阅读 · 0 评论 -
0x14.基础数据结构 — hash表与字符串hash
hash表与字符串hash详解。《算法竞赛进阶指南》学习笔记原创 2020-05-07 17:07:05 · 570 阅读 · 0 评论 -
0x13.基础数据结构 — 链表与邻接表
目录一、链表两种双向链表模板0.指针1.数组AcWing 136. 邻值查找1.平衡树2.链表3.线段树二、邻接表声明:本系列博客是《算法竞赛进阶指南》+《算法竞赛入门经典》+《挑战程序设计竞赛》的学习笔记,主要是因为我三本都买了 按照《算法竞赛进阶指南》的目录顺序学习,包含书中的部分重要知识点、例题答案及我个人的学习心得和对该算法的补充拓展,仅用于学习交流和复习,无任何商业用途。博客中部分...原创 2020-05-05 12:32:36 · 2442 阅读 · 0 评论 -
0x12.基本数据结构 — 队列与单调队列
目录0.UVA540 团体队列 Team Queue声明:本系列博客是《算法竞赛进阶指南》+《算法竞赛入门经典》+《挑战程序设计竞赛》的学习笔记,主要是因为我三本都买了 按照《算法竞赛进阶指南》的目录顺序学习,包含书中的部分重要知识点、例题答案及我个人的学习心得和对该算法的补充拓展,仅用于学习交流和复习,无任何商业用途。博客中部分内容来源于书本和网络(我尽量减少书中引用),由我个人整理总结(...原创 2020-05-04 12:42:03 · 801 阅读 · 0 评论 -
0x08.基本算法 — 总结与练习
目录知识点归纳0.AcWing116. 飞行员兄弟 (POJ 2965) (dfs/位运算状态压缩)1.DFS2.位运算+二进制枚举1.AcWing.117. 占卜DIY (模拟)2.AcWing 118. 分形(POJ 2083)(递归/分形)声明:本系列博客是《算法竞赛进阶指南》+《算法竞赛入门经典》+《挑战程序设计竞赛》的学习笔记,主要是因为我三本都买了 按照《算法竞赛进阶指南》的目录...原创 2020-05-02 12:29:26 · 1943 阅读 · 0 评论 -
0x11.基本数据结构 — 栈与单调栈
目录一、栈0.AcWing 41. 包含min函数的栈 (自己造栈)1.AcWing 128. 编辑器 (对顶栈)二、各种表达式计算递归法求中缀表达式的值,O(n^2)后缀表达式转中缀表达式,同时求值,O(n)中缀表达式转后缀表达式,同时对后缀表达式求值三、单调栈声明:本系列博客是《算法竞赛进阶指南》+《算法竞赛入门经典》+《挑战程序设计竞赛》的学习笔记,主要是因为我三本都买了 按照《算法竞...原创 2020-05-02 10:56:10 · 1115 阅读 · 1 评论 -
0x07.基本算法 — 贪心
贪心贪心是一种在每一次决策时都采用当前意义下最优策略的算法,因此,使用贪心算法要求问题的整体最优性可以由局部最优性导出。贪心算法的正确性需要证明,常见的证明手段有:微扰(邻项交换) 证明在任意局面下,任何对局部最优策略的微小改变都会造成整体结果变差,经常用于以排序为贪心策略的证明。范围缩放 证明任何对局部最优策略作用范围的扩展都不会造成整体结果变差。决策包容性证明在任意局面下,做出局...原创 2020-04-28 10:39:05 · 1558 阅读 · 0 评论 -
你见过哪些意想不到的bug ?(常见代码使用误区,下次一定还犯)
目录一、memset函数的使用细节导致的WA二、long long的锅引发的MLE三、queue里的坑让我RE我见过哪些意想不到的bug?这里主要指的是我用C++打比赛刷题时遇见的bug,但我感觉工程上可能也会碰见。像我这种蒟蒻的ACMer(ICPCer ?)打比赛经常出现神奇的bug,找了半个小时都找不到,果然之前有人跟我说debug还不如重新敲 。但是一般的bug直接用小黄鸭debug大...原创 2020-04-27 09:21:49 · 790 阅读 · 0 评论 -
0x06.基本算法 — 倍增
目录一、倍增0.例题引入1.AcWing 109.Genius ACM(归并+倍增)二、ST算法2.luogu P3865 【模板】ST表声明:本系列博客是《算法竞赛进阶指南》+《算法竞赛入门经典》+《挑战程序设计竞赛》的学习笔记,主要是因为我三本都买了 按照《算法竞赛进阶指南》的目录顺序学习,包含书中的部分重要知识点、例题答案及我个人的学习心得和对该算法的补充拓展,仅用于学习交流和复习,无任...原创 2020-04-24 22:45:06 · 1180 阅读 · 0 评论 -
0x04.基本算法 — 二分和三分
目录二分1.整数域上的二分2.实数域上的二分声明:本系列博客是《算法竞赛进阶指南》+《算法竞赛入门经典》+《挑战程序设计竞赛》的学习笔记的目录,主要是因为我三本都买了 按照《算法竞赛进阶指南》的目录顺序学习,包含《算法竞赛进阶指南》的重要知识点、例题答案及我个人的学习心得和对该算法的补充拓展,仅用于学习交流。博客的内容大多都来源于《算法竞赛进阶指南》和网络(习题和代码可都是我自己敲哒) ,如果...原创 2020-04-23 12:37:00 · 1642 阅读 · 1 评论 -
0x03.基本算法 — 前缀和与差分
目录一、前缀和二、二维前缀和(1)二维前缀和(2)二维前缀和的修改和求和0. NOI 2003激光炸弹(二维前缀和)1.牛妹吃豆子(二维前缀和模板,修改+求和)三、差分本文是《算法竞赛进阶指南》+《算法竞赛入门经典》+《挑战程序设计竞赛》的学习笔记,主要是因为我三本都买了 按照《算法竞赛进阶指南》的目录顺序学习,至少包含《算法竞赛进阶指南》的每一节的重要知识点和全套例题答案,和《算法竞赛入门经典...原创 2020-04-20 22:05:37 · 1290 阅读 · 1 评论