![](https://img-blog.csdnimg.cn/2020120120392929.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
AcWing课程/洛谷题单刷题总结
AcWing算法提高课/洛谷题单刷题总结
繁凡さん
只想当个小透明,就图一乐^q^,希望可以做出一些微小的贡献(目前研究方向:自然语言处理、深度学习中的对抗攻击、元学习,欢迎大佬们来与我交流^0^)
展开
-
【USACO training】Chapter 1 入门
Section 1.1 介绍USACO Training 综述http://train.usaco.org/usacogate(USACO 97道题) USA Computing Olympiad 是美国高校的信息学测评网站,也是美国中学生的官方竞赛网站。 美国著名在线题库,专门为信息学竞赛选手准备。 全英文界面,但有非官方的中文翻译。推荐直接阅读英语原文,既准确可靠又可提高英语水平。 网站的Training题目全面,每道题附有详细题解,可查看测试数据和运行结果,便于调试、发原创 2020-11-24 22:41:42 · 1142 阅读 · 0 评论 -
【数学专题】组合数学与计数
整理的算法模板合集: ACM模板目录#include <cstdio>#include <algorithm>#include <iostream>#include <cstring>using namespace std;const int N = 100007, mod = 5000011;int n, k;int f[N];int s[N];int main(){ scanf("%d%d", &n,原创 2020-12-01 20:29:06 · 646 阅读 · 0 评论 -
【数学专题】矩阵乘法
【数学专题】矩阵乘法原创 2020-11-24 19:33:42 · 434 阅读 · 0 评论 -
【数学专题】同余
AcWing 203. 同余方程AcWing 222. 青蛙的约会AcWing 202. 最幸运的数字#include <cstdio>#include <algorithm>#include <cstring>#include <iostream>using namespace std;const int N = 50007;typedef long long ll;ll n, m, L;ll a, b, c, d;int原创 2020-11-21 12:48:14 · 447 阅读 · 1 评论 -
【数学专题】约数个数与欧拉函数
整理的算法模板合集: ACM模板目录一、约数个数1. AcWing 1291. 轻拍牛头2. AcWing 1294. 樱花2.1 AcWing 197. 阶乘分解3. AcWing 198. 反素数4. AcWing 200. Hankson的趣味题二、欧拉函数1. AcWing 201. 可见的点2. AcWing 220. 最大公约数题目算法AcWing 1291. 轻拍牛头求约数的个数AcWing 1294. 樱花求(n!)2(n!)^2(n!)2的约数的个数原创 2020-11-12 22:18:43 · 855 阅读 · 0 评论 -
【数据结构】平衡树 - treap
treap = tree + heap 树堆(treap:让BST尽量随机)动态维护一个有序序列对于一个大根堆:最大值:一直往右走最小值:一直往左走treap实现操作set实现①插入insert②删除(使其变成叶子节点)erase③找前驱(中序遍历的前一个位置)/后继(中序遍历的后一个位置)lower_bound④找最大/最小begin(),end();⑤求某个值的排名无⑥求排名是k的数是谁无⑦比某个数小的最大值 ( 这个数可以不原创 2020-08-20 12:57:27 · 386 阅读 · 0 评论 -
【高级数据结构】并查集
A、AcWing 1250. 格子游戏#include<bits/stdc++.h>using namespace std;const int N = 500007;int n, m;int fa[N];bool flag;int get(int x, int y){ return x * n + y;}int find(int x){ if(fa[x] == x)return x; return fa[x] = find(fa[x]);}原创 2020-08-20 16:15:54 · 407 阅读 · 0 评论 -
【数据结构专题】线段树(一)
题目算法A、AcWing 1275. 最大数线段树求区间最大值B、SP1043 Can you answer these queries III线段树求最长连续子段和C、AcWing 246. 区间最大公约数求区间最大公约数这里写目录标题A、AcWing 1275. 最大数B、SP1043 Can you answer these queries IIIC、AcWing 246. 区间最大公约数本系列博客为AcWing的算法提高课的听课笔记,包含一些yxc老师...原创 2020-08-06 18:46:11 · 412 阅读 · 0 评论 -
【图论专题】图的存储与遍历(最小环、所有环的大小)
整理的算法模板合集: ACM模板目录Part 8.1 图的存储与遍历P2661 信息传递(最小环)P2921 Trick or Treat on the Farm(求所有环的大小)题单链接:一个动态更新的洛谷综合题单Part 8.1 图的存储与遍历这里的图论内容都比较简单,涉及图的存储以及遍历图的方式。求最小环权值为1:并查集权值不定:最短路(Dijkstra / Floyd)求环的大小tarjan缩点P2661 信息传递(最小环)我们把每个人视作一个点,并向他的信原创 2020-11-29 22:44:52 · 1249 阅读 · 0 评论 -
【搜索专题】DFS之连通性模型与搜索顺序
内部搜索不用(能)回溯,外部搜索才需要(必须)回溯和恢复现场A、AcWing 1112. 迷宫内部搜索的一道dfs模板题,别忘了vis#include<cstdio>#include<algorithm>#include<cstring>using namespace std;const int N = 110;int a[N];int n, m;int k;char g[N][N];int sx, sy, ex, ey;bool vis原创 2020-08-05 16:53:19 · 402 阅读 · 0 评论 -
【图论专题】BFS中的双向广搜 和 A-star
双向广搜AcWing 190. 字串变换#include <cstring>#include <iostream>#include <algorithm>#include <unordered_map>#include <queue>using namespace std;const int N = 6;int n;string a[N], b[N];int extend(queue<string>&am原创 2020-08-03 21:28:42 · 389 阅读 · 0 评论 -
【搜索专题】BFS中的多源BFS-双端队列BFS
A、AcWing 173. 矩阵距离所有点到多个终点的最短距离 我们可以建一个虚拟源点,虚拟源点到所有终点连0权的边,跑一次单源最短路即可 答案就是每一个点到虚拟源点的最近距离先将dist全部置为-1,可以用来判断是否经过然后直接将所有起点(值为1)dist都置为0然后全部入队跑bfs即可,利用了一个虚拟源点,只不过不用建出来这个源点两段性 =>=>=> 单调性,主要是单调性起作用选好起点直接跑bfs就会更新所有的未更新的结点每次入队最后出队的时候就已经是是最小值bfs原创 2020-08-02 18:25:15 · 594 阅读 · 1 评论 -
【动态规划】状态压缩动态规划
一、集合类状态压缩A、 AcWing 91. 最短Hamilton路径状压DP基础应用#include<cstdio>#include<algorithm>#include<cstring>using namespace std;int f[1 << 20][20];int w[20][20];int n, m;int main(){ scanf("%d", &n); for(int i = 0; i <原创 2020-08-31 12:47:00 · 931 阅读 · 5 评论 -
【动态规划】状态机模型
A、抛砖引玉 - AcWing 1049. 大盗阿福AcWing 1049. 大盗阿福本题比较简单,主要起到一个抛砖引玉的作用。我们可以很容易地想到转移方程:f[i]=max(f[i−1],f[i−2]+w[i])f[i] = max(f[i - 1] ,f[i - 2]+w[i])f[i]=max(f[i−1],f[i−2]+w[i])我们尝试使用状态机模型解决这一类问题。什么是状态机模型?状态机是有限状态自动机的简称,是现实事物运行规则抽象而成的一个数学模型。实际上就是我们利用一个类原创 2020-08-26 16:02:41 · 1450 阅读 · 2 评论 -
【动态规划】背包模型
一、01背包及各种变形A、AcWing 423. 采药01背包模板#include<cstdio>#include<algorithm>using namespace std;const int N = 50007;int n, m;int f[N];int t[N], w[N];int main(){ scanf("%d%d", &m, &n); for(int i = 1; i <= n; ++ i)原创 2020-09-01 15:06:30 · 695 阅读 · 0 评论 -
【图论专题】拓扑排序
拓扑排序给定一张有向无环图,若一个序列A满足图中的任意一条边(x,y)x都在y的前面呢么序列A就是图的拓扑排序实际上拓扑排序就是满足所有的边x指向y,x一定在y的前面。这样按照拓扑排序递推,就可以满足每一个状态都没有循环依赖 −>->−> 没有后效性−>->−>可以满足DP递推AcWing 1191. 家谱树(topo模板题)#include<cstdio>#include<iostream>#include<algorith原创 2020-07-31 17:56:56 · 416 阅读 · 4 评论 -
【图论专题】二分图
同样放一些yxc老师的讲课笔记A、AcWing 257. 关押罪犯#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>using namespace std;const int N = 50007, M = 500007;int n, m;int color[N];int ver[M], nex[M], edge[M], head[M],原创 2020-07-30 21:35:38 · 1768 阅读 · 3 评论 -
【图论专题】欧拉路径和欧拉回路
优化有向图用一条边删一条边无向图,用一条边,删一条边,对边也要标记#include<iostream>#include<cmath>#include<algorithm>using namespace std;const int N = 5007;int main(){ int x,y; scanf("%d%d", &x, &y); int a, b, c, d; double sum = 0;原创 2020-07-29 12:22:49 · 471 阅读 · 0 评论 -
【图论专题】有向图的强连通分量
AcWing 1174. 受欢迎的牛#include<cstdio>#include<iostream>#include<algorithm>#include<cstring>#include<vector>using namespace std;const int N = 50007, M = 500007, INF = 0x3f3f3f3f;int n,m;int dfn[N], low[N];int ins[N...原创 2020-07-27 22:42:41 · 678 阅读 · 0 评论 -
【图论专题】无向图的双连通分量
A、AcWing 395. 冗余路径结论:变成边双连通分量所需要新建的边数无向图连多少条边使得整个无向图变成任意两个点之间都有两条完全不相同的路径。结论1:任意两个点之间都有两条完全不相同的路径 =>=>=> 没有割边 =>=>=> 边双连通图结论2: 需要新建的边数:cnt+12\frac{cnt + 1}{2}2cnt+1 (下取整)(其中cnt为将所有的边双连通图缩点以后有割桥形成树的叶子节点,也就是度数为1的结点数)首先我们可以对图进行边连.原创 2020-07-29 23:24:18 · 945 阅读 · 0 评论 -
【动态规划专题】最长上升子序列模型
A、AcWing 895. 最长上升子序列(模板)给定一个长度为N的数列,求数值严格单调递增的子序列的长度最长是多少。今天的最长上升子序列模型的基础这里是一个O(n2)O(n^ 2)O(n2)的做法。可以用二分优化成O(nlogn)O(nlogn)O(nlogn)#include <iostream>#include <algorithm>#include <cstdio>using namespace std;const int N = 50007,原创 2020-07-28 21:02:12 · 505 阅读 · 0 评论 -
【动态规划专题】数字三角形模型
题目算法AcWing 1015. 摘花生简单线性DP、数字三角形模型AcWing 1018. 最低通行费数字三角形模型AcWing 1027. 方格取数DPAcWing 275. 传纸条DP闫氏DP分析法从集合的角度思考DP问题从最基础的例题开始分析A、AcWing 1015. 摘花生例题分析:#include<iostream>#include<cstdio>#include<algorithm>#...原创 2020-07-26 21:07:18 · 405 阅读 · 0 评论 -
【图论专题】差分约束系统
差分约束系统详解及专题训练原创 2020-07-22 17:41:59 · 523 阅读 · 0 评论 -
【图论专题】负环与01分数规划
我们一般使用方法2,这里有两个需要注意的点:将所有点入队这里是假象有一个虚拟源点,虚拟源点与所有点连接权值为0的边,我们将虚拟源点入队,那么第一轮while就是会将所有的结点入队,因此我们直接将所有点入队,就省去了建虚拟源点这一步。将所有的dist[i] = 0;实际上这里所有点的距离都可以初始化为任意值,因为有负环最终总是会到达负无穷,spfa求负环时理论的复杂度为O(m)O(m)O(m),实际的时间复杂度为O(nm)O(nm)O(nm)有一个经验之谈:当发现spfa较慢,一直无法结束(.原创 2020-07-20 16:03:42 · 326 阅读 · 0 评论 -
【图论专题】最小生成树的扩展应用
最小生成树的扩展应用能用kruskal打死不用primkruskal是要把所有的边都遍历一遍图论中的超级源点就比较常用,要时刻想到它题目列表:题目算法AcWing 1146. 新的开始超级源点的应用AcWing 1145. 北极通讯网络贪心AcWing 346. 走廊泼水节最小生成树添边变成完成图AcWing 1148. 秘密的牛奶运输严格次小生成树A、AcWing 1146. 新的开始(超级源点的应用)想办法将多模式的问题转换为单模式的问原创 2020-07-19 23:36:46 · 333 阅读 · 0 评论 -
【图论专题】最小生成树及其简单应用
题目列表:题目算法AcWing 1140. 最短网络prim模板AcWing 1141. 局域网kruskal模板AcWing 1142. 繁忙的都市瓶颈MST(最大边权最小的生成树)AcWing 1143. 联络员确定边最小生成树AcWing 1144. 连接格点确定边最小生成树、搜索建图UVA1395 苗条的生成树 Slim Span瓶颈MST最短路算法A、AcWing 1140. 最短网络(prim模板)#include&l原创 2020-07-18 21:37:04 · 1462 阅读 · 0 评论 -
【图论专题】Floyd算法及其扩展应用
Floyd的拓展应用:任意两点最短路传递闭包找最小环恰好经过k条边的最短路(倍增)题目列表:题目算法AcWing 1125. 牛的旅行任意两点最短路FloydAcWing 343. 排序Floyd传递闭包AcWing 344. 观光之旅找最小环AcWing 345. 牛站恰好经过k条边的最短路(倍增)A、AcWing 1125. 牛的旅行(任意两点最短路Floyd)题目链接农民John的农场里有很多牧区,有的路径连接一些特定的牧区。一原创 2020-07-17 17:23:07 · 599 阅读 · 0 评论 -
【图论专题】单源最短路的扩展应用
【图论专题】单源最短路的扩展应用原创 2020-07-16 12:13:46 · 406 阅读 · 0 评论 -
【图论专题】单源最短路的综合应用
【图论专题】单源最短路的综合应用原创 2020-07-15 20:04:00 · 631 阅读 · 0 评论