![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
图论
文章平均质量分 62
ShadowGhostH
这个作者很懒,什么都没留下…
展开
-
图的储存结构(*链式前向星)
从今天开始刷一下图论的相关内容,首先就是图的定义和相关术语。在此只做点出,以方便自己记忆和复习。 图 点集 边集 平凡图 子图 简单图 完全图 二部图 补图 同构 有向图 无向图 度 入度 出度 简单路径 强联通分量 图的储存结构 邻接矩阵 mp[maxn][maxn] 用一个二维数组表示矩阵来储存边的信息,map[i][j] 表示i->j的有向路的距离。 前向星 用原创 2017-11-06 15:12:35 · 456 阅读 · 0 评论 -
最小费用最大流 + EK最大流
上周末打了两场网络赛,对于网络流的应用有了更深的体会【简单来讲就是还不懂得怎么自己写,就只是好像懂了一丢丢要怎么用】。把kuangbin大佬的模板再手敲一遍加上自己的注释原创 2017-09-11 13:27:39 · 355 阅读 · 0 评论 -
CodeForces - 543B Destroying Roads (Dijkstra + 堆优化 + 枚举重复部分)
题目 题意 有 nnn 个城市,mmm 条道路,问可删去多少条道路,使得删去后的图上,从 s1s1s_1 到 t1t1t_1 时间花费小于等于 l1l1l_1,从 s2s2s_2 到 t2t2t_2 时间花费小于等于 l2l2l_2。其中通过任意一条连接两个城市的道路的时间花费都为1 思路 要想删去的边尽可能多,其实也就是使得满足条件:“从 s1s1s_1 到 t1t1t_1 时间花费小于...原创 2018-09-06 17:12:52 · 210 阅读 · 0 评论 -
每天学一丢之 LCA-Tarjan
每天学一丢意为每天学一点丢一点。 LCA LCALCALCA 即树上最近公共祖先,TarjanTarjanTarjan 可以离线地去求 LCALCALCA,并且可以维护树上两个点的距离。 TarjanTarjanTarjan 的复杂度是 O(n+q)O(n+q)O\left( n+q\right) 的 Tarjan TarjanTarjanTarjan 不仅可以解决 LCALCALCA ...原创 2018-09-13 19:18:27 · 156 阅读 · 0 评论 -
每天学一丢之 LCA-倍增
每天学一丢意为每天学一点丢一点。 LCA LCALCALCA 上一篇中已经解释过,而 TarjanTarjanTarjan 离线算法可以在 O(n+q)O(n+q)O(n+q)的时间复杂度下,求得询问两点的 LCALCALCA。 而倍增是一种在线查询的算法,他的预处理复杂度是 O(nlogn)O(nlogn)O(n\log n),每次查询是 O(logn)O(logn)O(\log ...原创 2018-09-14 14:03:36 · 201 阅读 · 0 评论 -
ACM-ICPC 2018 徐州赛区网络预赛 J(最大生成树 + 树上距离)
阿斯蒂芬 #include <bits/stdc++.h> using namespace std; #define sd(n) scanf("%d",&n) #define sdd(n,m) scanf("%d%d",&n,&m) #define sddd(n,m,k) scanf("%d%d原创 2018-09-19 17:11:19 · 213 阅读 · 0 评论 -
ZOJ - 3965 Binary Tree Restoring (dfs)
题目 题意 给出一颗二叉树的两种 dfsdfsdfs 序列,即同一层上没有明确的左右子树概念,两种序列可以以根节点-左/右子树-另一颗子树的顺序实现。求一颗满足两种 dfsdfsdfs 序列的二叉树,输出每一个节点的父亲节点。题目保证有解 思路 因为是一颗树的重构,我们可以同时从两棵树的 dfsdfsdfs 序列入手,我们可以分别在两个序列上,找到当前子树所在的区间,并且可以通过判断当前位在两个序...原创 2018-10-31 09:16:22 · 292 阅读 · 0 评论