随笔分类 -  图论

摘要: Tarjan算法总结 阅读全文
posted @ 2020-05-13 19:44 Parsnip 阅读(369) 评论(0) 推荐(1)
摘要:图论复习题总结 阅读全文
posted @ 2020-04-24 15:46 Parsnip 阅读(349) 评论(0) 推荐(1)
摘要: LCA和RMQ问题总结 阅读全文
posted @ 2020-04-08 16:24 Parsnip 阅读(433) 评论(0) 推荐(1)
摘要: 网络流理论和基础算法模板 阅读全文
posted @ 2020-01-19 22:02 Parsnip 阅读(903) 评论(0) 推荐(3)
摘要:Pushbox Description 周婧涵和她的小伙伴们发明了一个新游戏。游戏名字很准确,但不是特别有 创意。她们称之为“推动箱子在谷仓周围找到正确的位置,不要移动干草”游戏 (如果你认为这是浮夸的,你应该看到一些奶牛在编写代码时所使用的变量名 称…???)。 谷仓可以建模为一个 N×M 的矩形 阅读全文
posted @ 2019-08-24 13:07 Parsnip 阅读(185) 评论(0) 推荐(0)
摘要:寝室管理 Description T64有一个好朋友,叫T128。T128是寄宿生,并且最近被老师叫过去当宿管了。 宿管可不是一件很好做的工作,碰巧T128有一个工作上的问题想请T64帮忙解决。T128的寝室条件不是很好,所以没有很多钱来装修。礼间寝室仅由n 1条双向道路连接,而且任意两间寝室之间都 阅读全文
posted @ 2019-08-24 12:43 Parsnip 阅读(196) 评论(0) 推荐(0)
摘要:网络流 网络流的定义 一个流网络$G=(V,E)$为一张满足以下条件的 有向图 : 每一条边有一个 非负容量 ,即对于任意$E$中的$(u,v)$ , 有$c(u,v)\geq0$。 如果$G$中存在边$(u,v)$ ,那么 不存在 $(v,u)$ 。我们将图中不存在的边的容量定为$0$。 图中含有 阅读全文
posted @ 2019-08-01 23:31 Parsnip 阅读(398) 评论(0) 推荐(0)
摘要:分治 普通分治 普通分治是指针对序列或平面问题的分治算法。 思想 普通分治的思想是指将一个序列问题或平面问题通过某种划分方式划分为若干个子问题,直到子问题规模足够小,可以直接回答,再通过合并得到原问题的解。 通常来说,我们划分的方式是某个与题目特征有关的值,例如最大值或最小值。而当不易使用特征值进行 阅读全文
posted @ 2019-07-29 22:59 Parsnip 阅读(398) 评论(0) 推荐(1)
摘要:天天爱跑步 Description 小C同学认为跑步非常有趣,于是决定制作一款叫做《天天爱跑步》的游戏。《天天爱跑步》是一个养成类游戏,需要玩家每天按时上线,完成打卡任务。 这个游戏的地图可以看作一棵包含 n 个结点和 n−1 条边的树,每条边连接两个结点,且任意两个结点存在一条路径互相可达。树上结 阅读全文
posted @ 2019-07-18 21:20 Parsnip 阅读(252) 评论(0) 推荐(1)
摘要:炸弹(SNOI2017) Description 在一条直线上有 N 个炸弹,每个炸弹的坐标是 Xi,爆炸半径是 Ri,当一个炸弹爆炸 时,如果另一个炸弹所在位置 Xj 满足: Xi−Ri≤Xj≤Xi+Ri,那么,该炸弹也会被引爆。 现在,请你帮忙计算一下,先把第 i 个炸弹引爆,将引爆多少个炸弹呢 阅读全文
posted @ 2019-07-16 19:35 Parsnip 阅读(306) 评论(0) 推荐(1)
摘要:T1 gift Description ​ 夏川的生日就要到了。作为夏川形式上的男朋友,季堂打算给夏川买一些生日礼物。 ​ 商店里一共有种礼物。夏川每得到一种礼物,就会获得相应喜悦值Wi(每种礼物的喜悦值不能重复获得)。 ​ 每次,店员会按照一定的概率Pi(或者不拿出礼物),将第i种礼物拿出来。季堂 阅读全文
posted @ 2019-07-04 21:26 Parsnip 阅读(416) 评论(0) 推荐(0)
摘要:保卫王国 Description Z 国有n座城市,n 1条双向道路,每条双向道路连接两座城市,且任意两座城市 都能通过若干条道路相互到达。 Z 国的国防部长小 Z 要在城市中驻扎军队。驻扎军队需要满足如下几个条件: 一座城市可以驻扎一支军队,也可以不驻扎军队。 由道路直接连接的两座城市中至少要有一 阅读全文
posted @ 2019-07-02 13:34 Parsnip 阅读(291) 评论(0) 推荐(0)
摘要:新增一道例题及讲解 Exkruscal $Exkruscal$又称$Kruscal$重构树,是一种利用经典算法$Kruscal$来实现的构造算法,可以将一张无向图重构为一棵具有$2n 1$个节点的树,这棵树具有许多特殊的性质,可以用来解决许多问题。 那么我们来了解一下这个新算法。 Kruscal 先 阅读全文
posted @ 2019-03-25 13:50 Parsnip 阅读(416) 评论(0) 推荐(2)
摘要:追捕盗贼(COCI2007) Description 为了帮助警察抓住在逃的罪犯,你发明了一个新的计算机系统。警察控制的区域有N个城市,城市之间有E条双向边连接,城市编号为1到N。 警察经常想在罪犯从一个城市逃亡另一个城市的过程中抓住他。侦查员在仔细研究地图,以决定在哪个城市设置障碍,或者断掉某条路 阅读全文
posted @ 2019-02-25 14:48 Parsnip 阅读(634) 评论(0) 推荐(0)
摘要:这是一篇记录图论模板的博客 最短路篇 Dijkstra 树的直径BFS 树的直径DP cpp include include include include define mset(name,val) memset(name,val,sizeof name) using namespace std; 阅读全文
posted @ 2019-02-18 20:20 Parsnip 阅读(202) 评论(0) 推荐(1)
摘要:无向图的双连通分量 定义:若一张无向连通图不存在割点,则称它为"点双连通图"。若一张无向连通图不存在割边,则称它为"边双连通图"。 无向图图的极大点双连通子图被称为"点双连通分量",记为"$v DCC$"。无向图图的极大边双连通子图被称为"边双连通分量",记为"$e DCC$"。 没错,万能的图论连 阅读全文
posted @ 2019-02-17 20:35 Parsnip 阅读(846) 评论(0) 推荐(3)
摘要:有向图的强连通分量 定义:在有向图$G$中,如果两个顶点$v_i,v_j$间$(v_i v_j)$有一条从$v_i$到$v_j$的有向路径,同时还有一条从$v_j$到$v_i$的有向路径,则称两个顶点强连通($strongly\ connected$)。如果有向图$G$的每两个顶点都强连通,称$G$ 阅读全文
posted @ 2019-02-16 20:32 Parsnip 阅读(469) 评论(0) 推荐(1)
摘要:无向图的割点与割边 定义:给定无相连通图$G=(V,E)$ 若对于$x \in V$,从图中删去节点$x$以及所有与$x$关联的边后,$G$分裂为两个或以上不连通的子图,则称$x$为$G$的割点。 若对于$e \in E$,从图中删去边$e$之后,$G$分裂为两个不连通的子图,则称$e$为$G$的割 阅读全文
posted @ 2019-02-16 19:12 Parsnip 阅读(1640) 评论(0) 推荐(2)
摘要:树的重心 我们先来认识一下树的重心。 树的重心也叫树的质心。找到一个点,其所有的子树中最大的子树节点数最少,那么这个点就是这棵树的重心,删去重心后,生成的多棵树尽可能平衡。 根据树的重心的定义,我们可以通过树形DP来求解树的重心。 设$Max_i$代表删去i节点后树中剩下子树中节点最多的一个子树的节 阅读全文
posted @ 2019-02-13 19:08 Parsnip 阅读(265) 评论(0) 推荐(1)
摘要:树的直径 我们先来认识一下树的直径。 树是连通无环图,树上任意两点之间的路径是唯一的。定义树上任意两点$u, v$的距离为$u$到$v$路径上边权的和。树的直径$MN$为树上最长路径,即点$M$和$N$是树上距离最远的两个点,这条路径亦称为树的最长链。 那么,我们考虑一下如何求解树的直径。 方法一: 阅读全文
posted @ 2019-02-13 17:47 Parsnip 阅读(299) 评论(0) 推荐(1)