摘要: # 最小生成树 ## 定义 * 边权和最小的生成树 ## Kruskal 算法 * 让边从小到大排序,如果不在同一集合,就加入 ```c++ #include using namespace std; const int MAXN = 5e3 + 10,MAXM = 2e5 + 10; int n, 阅读全文
posted @ 2023-07-11 12:00 xxcdsg 阅读(10) 评论(0) 推荐(0) 编辑
摘要: # 基环树 ## 简单无向图有n个点n-1条边,那么它们会连成一条直线 ## n个点n条边,相对多一条边,有且仅有一个环 ## 可以利用拓扑排序找这个环 ### 例题:[F - Well-defined Path Queries on a Namori](https://atcoder.jp/con 阅读全文
posted @ 2023-07-11 11:59 xxcdsg 阅读(18) 评论(0) 推荐(0) 编辑
摘要: # 最近公共祖先(LCA) ## 主要思路:一个节点的2n的祖先是那个节点2n1的祖先的2n1的祖先 ## 也就是说f[x][n]=f[f[x][n1]][n1] ## 还要计算log2的值,记录深度 ```c++ #include using names 阅读全文
posted @ 2023-07-11 11:59 xxcdsg 阅读(26) 评论(0) 推荐(0) 编辑
摘要: # 二分图(二部图) ## 概念:可分为两个集合,集合内的点无边相连的图 ### 判定:染色法 ```c++ int col[MAXN]; vector ed[MAXN]; bool bfs(){ col[1] = 1; queue qu; while(!qu.empty()){ int u = q 阅读全文
posted @ 2023-07-11 11:59 xxcdsg 阅读(92) 评论(0) 推荐(0) 编辑
摘要: # 差分约束 ## 对于形如: {xc1xc1y1xc2xc2y2...xcnxcnyn 阅读全文
posted @ 2023-07-11 11:58 xxcdsg 阅读(3) 评论(0) 推荐(0) 编辑
摘要: # 次小生成树 ## 定义:边权之和大于最小生成树边权之和的生成树中最小的一个 ## 思路:枚举所有未连接的边连上,那么一定会出现一个环,再去掉环上最大的边(如果与新加的边等大就要去次小边),这个最小值就为次小生成树的值 ## 朴素求法:先用kruskal求出最小生成树,然后从每个点开始找到其他点的 阅读全文
posted @ 2023-07-11 11:58 xxcdsg 阅读(18) 评论(0) 推荐(0) 编辑
摘要: # 最大流问题 ## 给出起点、终点、边最大能传递的值,问从起点到终点最多能传多少 * 阻塞流:不能再给终点增加值的流(最大流就是一种阻塞流) * 传统算法:新建一个剩余量的图,找路径、减去最小值、删路径,重复直到为阻塞流(不一定为最优解) ## Ford-Fulkerson算法(复杂度O(fm), 阅读全文
posted @ 2023-07-11 11:57 xxcdsg 阅读(51) 评论(0) 推荐(0) 编辑
摘要: # tarjan算法(求强连通分量)(缩点) ## 强连通:两个点相互可达 ## 强连通分量:集合中的点两两可达 ## 思路:记录自己的时间戳dfs与能到达的最小时间戳low,先dfs搜索完自己能到达的点,如果更新后的最小时间戳low与己的时间戳dfs相等说明自己就是那个强连通分量顶点,如果不相等说 阅读全文
posted @ 2023-07-11 11:57 xxcdsg 阅读(17) 评论(0) 推荐(0) 编辑
摘要: ~~cdq大法好~~ ~~还是没怎么搞懂~~ ### 先把题目放着: 二维偏序:[P1908 逆序对](https://www.luogu.com.cn/problem/P1908) 三维偏序:[P3810 【模板】三维偏序(陌上花开)](https://www.luogu.com.cn/probl 阅读全文
posted @ 2023-07-11 11:56 xxcdsg 阅读(48) 评论(0) 推荐(0) 编辑
摘要: # 动态规划 ![闫氏DP分析法](C:\Users\Administrator\Desktop\markdown\闫氏DP分析法.png) ## 1.数字三角形模型 ### 1.1只取一条最大路或最小路 - [1015. 摘花生](https://www.acwing.com/problem/co 阅读全文
posted @ 2023-07-11 11:55 xxcdsg 阅读(10) 评论(0) 推荐(0) 编辑
摘要: # 背包问题 ## [01背包问题](https://www.acwing.com/problem/content/2/) * 有 N 件物品和一个容量是 V 的背包。每件物品只能使用一次. * 第 i 件物品的体积是 vi,价值是 wi. * 求总体积不超过背包容量情况下的最大价值 ```c++ 阅读全文
posted @ 2023-07-11 11:54 xxcdsg 阅读(13) 评论(0) 推荐(0) 编辑
点击右上角即可分享
微信分享提示