
图论
文章平均质量分 81
init1064573673
这个作者很懒,什么都没留下…
展开
-
[BJWC2010] 严格次小生成树
题面严格次小生成树题解小蓝书 + 我自己的补充做法题意很好理解吧。设最小生成树的边权之和为 sumsumsum。我们要找严格次小生成树,就是要找到这样的一条非最小生成树上的边,满足:将最小生成树上的某条边替换成这条边后,树依然联通。这条边与被替换边的权值之差最小,且大于 000。所以我们进行如下操作:选择一条非最小生成树上的边 (x,y,z)(x,y,z)(x,y,z)。将它加入树中,显然会形成一个环。由 KruskalKruskalKruskal 的证明过程我们可以得到,z原创 2021-05-26 21:47:17 · 157 阅读 · 0 评论 -
[NOIP2015 提高组] 运输计划 lca 正确做法
题面运输计划题解因为在写树剖的时候写崩了,所以这里提供一个 lcalcalca 的做法。虽然有人说 lcalcalca 会被卡,但是我觉得用 tarjantarjantarjan 写出来复杂度也不假。(复杂度分析在下文)前言读完题不难发现,其实我们要清空权值的边就是在清空它之后,能把最长的路径降到最小。最大的最小我们想到了什么?自然而然就能稳一波二分答案。所以就可以我们二分在清空后最长的路径的长度。二分答案的具体步骤于是现在我们就需要写一个 checkcheckcheck 函数来判断答案是否原创 2021-05-12 21:51:56 · 110 阅读 · 0 评论 -
[HAOI2012] 道路
题面道路题解题意对于每条道路,求出有多少条最短路经过它。解析先看看数据范围,不算大。所以我们分别以每个点为起点,用 SPFASPFASPFA 求出每个点到源点的最短距离。不难发现对于边 (u,v,w)(u,v,w)(u,v,w),如果 dis[u]+w==dis[v]dis[u] + w == dis[v]dis[u]+w==dis[v],那么这条边一定在源点到 vvv 的最短路上。而不满足这个条件的边,显然对答案毫无贡献,所以我们可以在跑完最短路后忽略不满足条件的这些边。这样原图就变成原创 2021-05-09 21:48:55 · 155 阅读 · 0 评论 -
[JSOI2008] 小店购物
题面小店购物题解这道题建边方式很套路。定义有向边 (u,v,w)(u,v,w)(u,v,w) 表示买了 uuu 之后,能以边权 www 的价格买 vvv 。对于原价的物品,建一个超级源点,分别连接每个物品。对于特价的物品,根据以上的定义,连接两个有依赖关系的物品。最后就会发现,要买完所有的物品,其实就是求这幅有向图的最小树形图。根据贪心的思想,因为每个物品都要买 (对于不用买的物品,我们可以看做是以 000 的价格买入),而以能以它的最低价格买就以它的最低价格买肯定是最优的 (即 uuu 是要原创 2021-05-07 21:30:58 · 144 阅读 · 0 评论 -
[APIO2010] 巡逻
题面巡逻题目大意在一颗边长为 111 的树上,添加一条或两条长度为 111 的路径,使遍历完整幅图,且经过添加的路径正好一次,并回到起点的路径长度最短,并输出这个长度。题解不加的情况根据深搜的特点,每条路径必定会经过 222 次,即第一次访问和回溯。所以在不加的时候,最短路径一定是 2∗(n−1)2 * (n - 1)2∗(n−1)。加一条边的情况因为不加时每条边都要经过两次,加了边之后的好处就是,可以不走原路返回,改为直接返回某一个点,于是要求最短的路径,就是要让节省的路径长度最长。而树中原创 2021-05-04 08:12:01 · 248 阅读 · 0 评论 -
2-SAT 模板题
题面2-SAT模板题题目描述有 nnn 个布尔变量 x1x_1x1 ~ xnx_nxn,满足 mmm 个形如 xi=true/falsex_i=true/falsexi=true/false 或 xj=true/falsex_j=true/falsexj=true/false 的条件 。输入第一行两个整数 nnn 和 mmm,意义如题面所述。接下来的 mmm 行,每行四个整数,x,a,y,bx,a,y,bx,a,y,b (KaTeX parse error: Expected '\righ原创 2021-05-02 22:02:46 · 136 阅读 · 0 评论 -
P3530 [POI2012]FES-Festival
题面P3530 [POI2012]FES-Festival题意在满足给定的条件下,求出赛车手的成绩可能的取值有多少种。解析差分约束不等式关系自然联想到差分约束。对于第一种不等式因为给定了相差的值,所以建双向边:dis[i]≤dis[j]−1dis[i] \leq dis[j] - 1dis[i]≤dis[j]−1dis[j]≤dis[i]+1dis[j] \leq dis[i] + 1dis[j]≤dis[i]+1通过两个不等式,锁定 i,ji,ji,j 之间的差值为 111。对于第原创 2021-04-29 21:47:23 · 147 阅读 · 0 评论 -
HAOI 2010 软件安装
题面软件安装题意一个裸的树形背包问题解析缩点从某个物品依赖的物品向这个物品连边,得到一个有向图。这时我们会发现,在一个强连通分量里,如果想要有价值的话,必须全部选,根据贪心的思想,对于一个强联通分量,要么全部选,要么全部不选,所以我们可以把这幅有向图进行缩点。因为每个物品只有一个依赖关系,所以每个强连通分量最多只会有一个父节点,也就是说,缩点后我们得到了森林。为了方便进行树形背包,我们可以建一个根节点 000 号节点,把森林转化为一棵树。背包状态树形背包的老套路:dp[i][j]d原创 2021-04-29 19:36:06 · 153 阅读 · 0 评论 -
[POI2008]BLO-Blockade
题面[POI2008]BLO-Blockade题解深度优先遍历这幅图。设 siz[x]siz[x]siz[x] 表示在搜索树中,以 xxx 为根的子树的大小。注意不连通的关系是双向的,所以(x,y),(y,x)(x,y),(y,x)(x,y),(y,x)算两次。对于当前点 xxx,有两种情况:xxx 是割点那么删去 xxx 之后会有如下的点不连通:xxx 在搜索树上的子树中所有的节点与其它的点:∑k=1tsiz[k]∗(n−siz[k])(t为子节点总数)\sum_{k = 1}^{原创 2021-04-22 21:46:23 · 159 阅读 · 0 评论 -
UVA515 King(差分约束)
这是一篇良心的题解这道题不打开标签还是能看出是差分约束的,但是和板子的差分约束有点不同,它的不等式中未知项不止两个,但是,这些未知项都是连续的,自然我们不难想到用前缀和的形式来表示。关于翻译错误仔细看一下原文的题面是能够看出来的,应该是:ax+ax+1+…+ax+ya_x + a_{x + 1} + … + a_{x + y}ax+ax+1+…+ax+y最长路判正环的SPFA以 gtgtgt 为例:所以我们可以把它转化为:sumx+y−sumx−1>csum_{x + y} -原创 2021-04-22 14:52:10 · 110 阅读 · 0 评论