![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
图论
文章平均质量分 73
Mint-hexagram
这个作者很懒,什么都没留下…
展开
-
树链剖分(一)-重链剖分:模板&例题
重链剖分的模板学习及基础模板练习原创 2022-02-25 16:17:52 · 582 阅读 · 1 评论 -
2-SAT问题合集-ybtoj
2-SAT的合集原创 2022-02-24 10:46:23 · 2098 阅读 · 0 评论 -
P4095 [HEOI2013]Eden 的新背包问题 & 二进制拆分+正反01背包
奇怪的题,真的很怪,调了1h传送门:洛谷P4095 [HEOI2013]Eden 的新背包问题算法要素:二进制拆分+正反两次01背包(特殊01背包)最开始没什么思路,发现可以直接多重背包,水掉50分。打上一个二进制拆分,数据梯度太大,因此意义不大。考虑离线,O(1)回答询问,结果还掉到40了。。。正解:step1:二进制拆分step2:正反两次01背包,dp1[i][j]表示只选前i个,dp2[i][j]表示只选n~i个。step3:因为原先某一物品被二进制拆分成了多个物品,去掉该物品所在原创 2021-10-28 12:57:55 · 155 阅读 · 0 评论 -
次小生成树(严格次小)(模版)
这道题调了快2h,因为一个极其愚蠢的错误算法要素:kruskal+倍增LCA+同步求最大值次大值算法分析:基本思路:首先肯定要生成一个最小生成树,然后有两种枚举方式:<1>可以选择枚举生成树上每一条边<2>枚举每一条非树边为什么要枚举呢?显然是因为这个问题并没有明显的单调性,无法通过贪心或者二分来排除一些无用的情况。那么我们还要面临最后一个问题:次小生成树分为严格次小生成树和非严格次小生成树。这个问题稍后再讨论。具体实现先考虑如何枚举树上的每一条边:(1)最短路原创 2021-10-28 12:57:07 · 366 阅读 · 0 评论 -
无向图的最小环问题
一道很有意思的题。算法要素:floyd+利用过程量核心思想:算法可以利用的部分不只有结果量,过程量也会起到一些意想不到的作用。洛谷题面传送门题目分析:一、先说Floyd的本质:用多了f[i][j]的定义,就会忘了其实它是压掉一维的结果。最初的定义是f[i][j][k],意为从i到j,只经过1~k之间的点,最短路是多少。因此转移式为:f[i][j][k]=min(f[i][j][k-1],f[i][k][k-1]+f[k][j][k-1])。很容易发现:每一次k只会从k-1转移而来,因此可原创 2021-10-14 17:23:02 · 127 阅读 · 0 评论 -
跑路(洛谷)&上班跑路(YBTOJ)
洛谷题面传送门题目分析:题面给出每一步可以走2^k步,k为任意正整数。这很明显是倍增。而简单的最短路无法解决这个问题,因此考虑图上倍增dp。设f[i][j][q](bool)表示是否存在一条从i到j长度为2^q的路径。g[i][j]存储从i到j的最小步数和考虑初始化,对于每一个输入的有向边(a,b),f[a][b][0]=1,g[a][b]=1考虑状态转移:若f[i][k][q-1]==1&&f[k][j][q-1]==1,可以一次走完两条路径,故f[i][j][q]=1原创 2021-09-24 11:36:38 · 107 阅读 · 0 评论