![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
动态规划
文章平均质量分 75
sharp_legendgod
这个作者很懒,什么都没留下…
展开
-
浅谈 Wqs 二分
浅谈 Wqs 二分主要是今天写 「九省联考 2018」林克卡特树 的时候遇到了,就学一下。文章目录使用条件具体实现边界处理使用条件题目中对于一种 Dp\tt DpDp 有限制,但是如果没有限制,其复杂度是正确而且很好求的。举个例子来说:将一棵树划分成 kkk 条链,我们 Dp\tt DpDp 的时候只需要记录当前节点是否被匹配过,以及是否正在被匹配即可,而且我们还要考虑总共有几条链,进行划分。但是如果不考虑链的数量,这个 Dp\tt DpDp 显然是 O(n)O(n)O(n) 的。原创 2021-10-19 21:42:35 · 216 阅读 · 0 评论 -
AT2062 [AGC005D] ~K Perm Counting 题解
AT2062 [AGC005D] ~K Perm CountingAT2062 [AGC005D] ~K Perm Counting一个有趣的做法。发现合法的情况直接算是不好算的,我们考虑进行二项式反演,也就是钦定有多少个是不合法的。考虑一个位置 iii 可以向 i±ki\pm ki±k 连边。我们不妨考虑左边是排列,右边是位置的二分图。那么本质上钦定 iii 个不合法的就是对于这样的二分图满足其匹配是 i−1i - 1i−1。对于匹配是 iii,长度是 jjj 的链,方案数就是 (i+原创 2021-10-11 16:25:43 · 135 阅读 · 0 评论 -
AT2000 [AGC002F] Leftmost Ball 题解
AT2000 [AGC002F] Leftmost BallAT2000 [AGC002F] Leftmost Ball感觉转移还是挺难的。Orz AK_STAR\color{white} Orz\ AK\_STAROrz AK_STAR我们不妨考虑随便染色,对于一种合法的染色肯定是对于任意前缀和白色的数量都大于等于颜色的数量。那么我们不妨考虑通过白色来计数,我们不妨钦定每次填一种颜色的时候直接匹配最靠左没有匹配过的白色点。设 f(i,j)f(i, j)f(i,j)原创 2021-10-11 14:54:26 · 114 阅读 · 0 评论 -
Hdu6355 Fireflies 题解
Hdu6355 FirefliesHdu6355 Fireflies发现网上没有什么题解 …\dots…题目描述在一个 nnn 维度的超立方体,每一维度的大小是 pip_ipi。你可以在任意位置放一个萤火虫,萤火虫每次只能在一个维度移动一个单位,对于 xi→yix_i \to y_ixi→yi 需要保证 xi+1=yix_i + 1 = y_ixi+1=yi,而且不能超过超立方体。求最开始最少放多少个,才能保证存在一种方案,对于每一个单位空间都有一个萤火虫遍历它。我们考虑原创 2021-10-09 15:34:10 · 129 阅读 · 0 评论 -
P4719 【模板】“动态 DP“&动态树分治 题解
P4719 【模板】"动态 DP"&动态树分治P4719 【模板】“动态 DP”&动态树分治先不考虑修改,可以想到 Dp\tt DpDp:设 f(i,0/1)f(i, 0/1)f(i,0/1) 表示当前的点是否选择,那么转移可以得到:f(u,0)=∑v∈sonumax(f(v,0),f(v,1))f(u,1)=∑v∈sonuf(v,0)\begin{aligned}f(u, 0) &= \sum_{v \in son_u} \max(f(v, 0), f(v, 1)原创 2021-10-08 16:26:05 · 144 阅读 · 0 评论 -
CF1197E Culture Code 题解
CF1197E Culture CodeCF1197E Culture Code显然 Dp\tt DpDp 肯定是不能依赖于体积的。我们考虑选择当前位置的方案。容易发现每个点能选择的对象构成了一个 DAG\tt DAGDAG。设 f(i)f(i)f(i) 表示选择了点 iii 的最小剩余体积,显然 f(i)=−in(i)+minjf(j)+out(j)f(i) = -in(i) + \min_{j} f(j) + out(j)f(i)=−in(i)+minjf(j)+out(j),后面的东西原创 2021-10-08 10:34:11 · 122 阅读 · 0 评论 -
[PKUWC2018]Minimax 题解
P5298 [PKUWC2018]Minimax2021.10.82021.10.82021.10.8 重新自己写出这题。其实不要想太复杂就好了,别忘了看题面。先给一个提示吧,为什么这题的 DpDpDp 不用融斥掉中间的部分,题目已经说出来了:没有重复权值的叶子。首先考虑对于每一个节点的值最多只有 n 个,所以肯定需要离散化。之后考虑实际上每一个节点的值都是从其子树的叶子节点中转移过来的。所以考虑树形 Dp设 f[i][j]f[i][j]f[i][j] 表示在树上点 iii 其值原创 2021-10-08 09:10:48 · 202 阅读 · 0 评论 -
P3412 仓鼠找sugar II 题解
P3412 仓鼠找sugar IIP3412 仓鼠找sugar II根据期望的线性性质我们考虑对于每一条边进行计算贡献。我们可以考虑先算方案数再除以总的点对。根据期望的定义本质上就是平均数,那么对于一条边 u→vu \to vu→v 的贡献次数就是 (n−siz(u))×siz(u)(n - siz(u)) \times siz(u)(n−siz(u))×siz(u)。我们考虑一条边有两种情况:向上向下我们钦定点 uuu 表示 fa(u)→ufa(u) \to ufa(u)→u 的边原创 2021-10-07 18:59:28 · 105 阅读 · 0 评论 -
[HNOI2013]游走 题解
[HNOI2013]游走[HNOI2013]游走考虑每一条边的单独贡献,发现这个不是很好计算,而且边数其实很多。我们考虑对于一条 u→vu \to vu→v 的边,其贡献是 f(u)deg(u)+f(v)deg(v)\dfrac{f(u)}{deg(u)} + \dfrac{f(v)}{deg(v)}deg(u)f(u)+deg(v)f(v)。其中 f(i)f(i)f(i) 表示点 iii 期望被经过的次数,别忘了一开始点 111 就被经过一次了。考虑走到别的点之后再走回来更新这个点:f原创 2021-10-07 15:57:02 · 177 阅读 · 0 评论 -
[HNOI2015]亚瑟王 题解
[HNOI2015]亚瑟王[HNOI2015]亚瑟王根据期望的线性性质,我们考虑每一张牌的贡献。也就是每一张牌被使用的概率。显然第一张牌使用的概率就是 1−(1−p1)r1 - (1 - p_1) ^ r1−(1−p1)r。但是发现之后的牌的使用依赖于前面的牌的使用,因为如果前面有 jjj 张牌被使用了,相当于有 jjj 轮对于当前牌是无效的。我们考虑进行 dp\tt dpdp,设 f(i,j)f(i, j)f(i,j) 表示前 iii 张使用了 jjj 张牌的概率。f(i,j)={f(i原创 2021-10-07 14:03:08 · 300 阅读 · 0 评论 -
[六省联考2017]分手是祝愿 题解
[六省联考2017]分手是祝愿[六省联考2017]分手是祝愿对于每一种情况,我们肯定是从大到小依次进行操作,那么对于一次操作是不能用其他操作进行代替的。如果可以代替要么代替的那个变得不合法,要么其本身就是不用进行操作的。所以我们可以直接计算出来原来序列需要进行多少次方案。根据期望的线性性,而且现在本质上只和操作正确的次数有关,我们直接对于有几个还要操作进行 Dp\tt DpDp。设 f(i)f(i)f(i) 表示从还有 iii 个需要进行操作到 i−1i - 1i−1 个需要的期望步数原创 2021-10-07 10:48:41 · 116 阅读 · 0 评论 -
全局平衡二叉树 P4751 【模板】“动态DP“
全局平衡二叉树 P4751 【模板】"动态DP"P4751 【模板】“动态DP”&动态树分治(加强版)有事没事就用 vector\tt vectorvector 总会有天废掉的。注意在 c++11\tt c++11c++11 之后 vector\tt vectorvector 不管是是否在 O2O2O2 的条件下,速度都比常规数组慢很多,甚至比链表要慢 444 倍。死亡写法:struct Tree : vector<vector<int>> {原创 2021-10-01 21:29:11 · 162 阅读 · 0 评论 -
课后练习
CF1182E Product Oriented Recurrence佳佳的 FibonacciCF575A Fibonotci原创 2021-09-28 21:41:09 · 94 阅读 · 0 评论 -
LOJ #2269. 「SDOI2017」切树游戏 题解
LOJ #2269. 「SDOI2017」切树游戏#2269. 「SDOI2017」切树游戏没错我在某谷被卡掉了,之后会了全局平衡二叉树再更新那个做法。不考虑修改怎么做。设 f(i,j)f(i, j)f(i,j) 表示以 iii 为根的子树(必须包含点 iii)异或值为 jjj 的方案数, G(i,j)G(i, j)G(i,j) 以 iii 为根的子树的答案。考虑更新。对于上一个答案 f′(i,j)f'(i, j)f′(i,j) 当前儿子 vvv 可以更新得到:f(i,j)=∑j=k⊗x原创 2021-09-28 18:33:30 · 305 阅读 · 0 评论 -
POJ 3613 Cow Relays 题解
POJ 3613 Cow RelaysPOJ 3613 Cow Relays真心想吐槽一下,这个不能用 111111 真的挺难受的。首先看去像一个板子题,之后发现如果直接对于每个点建图的话时间是过不了的。之后发现边的数量其实不是很多,一条边最多只有两个不同的点,所以实际上有用的点数是 2m+22m + 22m+2 个。我们对于这个直接进行矩阵快速幂即可。其实还有一个稍微难写一点的方法,我们考虑对于每一条边建立矩阵,之后如果两条边能互相到达就赋值为其权值,具体来说是 i→j,j→zi \to原创 2021-09-27 10:55:36 · 87 阅读 · 0 评论 -
论动态 Dp
SP1716 GSS3 - Can you answer these queries III #2269. 「SDOI2017」切树游戏说实在的这种码量还是少写吧,之后要以构造题为主原创 2021-09-26 14:58:18 · 141 阅读 · 0 评论 -
CF498E Stairs and Line 题解
CF498E Stairs and LinesCF498E Stairs and Lines肯定是状压,而且状压的就是轮廓线,我们考虑同时状压横着和竖着的情况。然后肯定需要进行矩阵快速幂复杂度还是很高的。但是我们考虑我们当前位置和之前位置进行转移的时候使用的是竖着的线,而且横着的线仅仅在当前转移出现了,意味着肯定不会影响后面的计算。那么我们不妨枚举轮廓线,这样复杂度就是直接少了 2732^{7^3}273。然后说几个细节,具体状态转移就自己推吧。我的写法是考虑当前位置和后面位置的衔接,对于也就是原创 2021-09-25 20:43:36 · 103 阅读 · 0 评论 -
[HNOI2002]公交车路线 题解
[HNOI2002]公交车路线[HNOI2002]公交车路线这题和没有一样。直接按照题意建立转移矩阵即可。笔者的答案矩阵是:[fAfBfC…fH]\left[\begin{matrix}f_{A} & f_B & f_C & \dots & f_H\end{matrix}\right][fAfBfC…fH]其中 fif_ifi 表示经过了 nnn 次操作从 AAA 走到 iii 的方案数。不妨设转移矩阵为 GGG。那么对于原创 2021-09-25 19:50:22 · 176 阅读 · 0 评论 -
[SCOI2009]迷路 题解
[SCOI2009]迷路[SCOI2009]迷路文章目录思考过程题解思考过程这个东西发现距离只有 999,记得 Lcm(1…9)=2520\tt Lcm(1 \dots 9) = 2520Lcm(1…9)=2520 那么直接考虑暴力处理出来,之后对于每个 TTT 进行分开计算即可。显然这个很难写,但是同样是因为距离是 999 那么我们每次只能对于 TTT 增加 111 不妨考虑直接对于每个点拆开计算。题解发现这个 nnn 特别小,进行拆点矩阵快速幂,这里有几个细节就是因为是单向边,对于原创 2021-09-25 19:38:59 · 167 阅读 · 0 评论 -
[NOI2013] 矩阵游戏 题解
[NOI2013] 矩阵游戏[NOI2013] 矩阵游戏各位我是弱智石锤了。题目可能不是很难但是有点细节要注意。首先考虑行和列我们分别来看:对于列的情况我们只需要前一项即可递推。对于行的情况我们只需要上一项也可递推。那么本质上题目就提示我们可以只保留一项进行矩阵快速幂。不妨设答案矩阵是[1fm]\left[\begin{matrix}1 & f_m\end{matrix}\right][1fm]我们考虑首先递推同一行之后再递推列,最后一行单独拿出来处原创 2021-09-25 18:48:55 · 259 阅读 · 0 评论 -
[HNOI2011]数学作业 题解
[HNOI2011]数学作业[HNOI2011]数学作业。直接考虑 Dp\tt DpDp 显然 fi=fi−1×10x+if_i = f_{i - 1} \times 10^{x} + ifi=fi−1×10x+i。那么我们直接将其分段进行计算即可。具体的矩阵:[1ifi]\left[\begin{matrix}1 & i & f_i\end{matrix}\right][1ifi][1100110010x]\left[\begin{matrix}原创 2021-09-25 14:31:13 · 209 阅读 · 0 评论 -
CF618G Combining Slimes 题解
CF618G Combining SlimesCF618G Combining Slimes首先考虑根据期望的线性性质对于每一个数分开来计算贡献,之后再求出每一个数出现的概率即可。也不是很清楚这个东西是不是线性性质。但是说实话就是对于所有数一起考虑是不能入手的。之后我们发现事实上任意的数都有可能出现,发现其没有取模,我们不妨计算一下一个数可能出现的概率。如果说这个数是 xxx,那么其概率是 (1−10−9)2x−1(1 - 10^{-9})^{2^{x - 1}}(1−10−9)2x−1原创 2021-09-25 10:26:20 · 205 阅读 · 0 评论 -
CF576D Flights for Regular Customers 题解
CF576D Flights for Regular CustomersCF576D Flights for Regular Customers没想到用 bitset\tt bitsetbitset。首先考虑肯定是对于 ddd 排序一下进行计算。我们维护一个矩阵表示其中 au,va_{u, v}au,v 表示是否存在 u→vu \to vu→v 的路径。我们需要求出对于一个时间 ttt 可以到达哪些点,之后我们就在只有这些边的图上进行广搜即可。注意我们的邻接矩阵是存图的,之后我们更新原创 2021-09-24 16:29:30 · 166 阅读 · 0 评论 -
CF575A Fibonotci 题解
CF575A FibonotciCF575A Fibonotci这个题目兴许可以当做动态 Dp\tt DpDp 入门?考虑如果直接给定了 sss 没有修改的话,我们直接对于这些 sss 矩阵乘起来直接做即可。考虑题目一个比较简单的形式,就是如果每一段只有一个位置被修改,那么我们直接维护前缀积,后缀积即可。那么我们推广一下这个本质上就是区间查询单点修改的题目,因为矩阵的逆矩阵不一定存在,我们只能使用线段树进行维护。我们对于每一段进行单独考虑,修改里面的所有值,之后再改回来即可。我也不知原创 2021-09-24 15:19:39 · 113 阅读 · 0 评论 -
关于 CSP - J 和区间 dp 入门注意事项
1. 首先,复赛的时候注意时间复杂度和空间大小1.看题目时必须仔细,例如数组的大小在空间允许的情况下,多开10倍2.如果采用暴力算法,记得剪枝或者记忆化2.关于区间dp常规模版:for ...//枚举区间长度 for ...//枚举左右两个端点 for ...//枚举断点,或者直接dp dp方程 推导方程的思路1.运用数组,灵活表示当前的状态...原创 2019-11-07 22:16:35 · 281 阅读 · 0 评论 -
CF917C Pollywog 题解
CF917C PollywogCF917C Pollywog发现 xxx 是比较小的我们考虑直接状压。之后发现 nnn 是比较大的考虑使用矩阵加速进行运算。矩阵加速其实不一定只能使用加减,使用 min,max\min, \maxmin,max 也是可以的,具体来说需要满足一些性质。我们不妨设这个两个运算符运算符是 ⊕,⊗\oplus, \otimes⊕,⊗。显然对于我们矩阵乘法的定义,最终得到的矩阵 C(i,j)C(i, j)C(i,j) 肯定是通过 (Ai,1⊗B1,j)⊕(Ai,2⊗原创 2021-09-24 10:14:49 · 189 阅读 · 0 评论 -
P5303 [GXOI/GZOI2019]逼死强迫症 题解
P5303 [GXOI/GZOI2019]逼死强迫症P5303 [GXOI/GZOI2019]逼死强迫症说实在的这题不难,但是我推 Dp\tt DpDp 的时候却只和正解相差一点,最后还是看了题解。感觉平时练习的时候还是需要再耐心一点,可能再过一过就出来了呢?首先考虑 Dp\tt DpDp。设 f(i)f(i)f(i) 表示放了 2×i2 \times i2×i 个方块,考虑不填 111 的方块,那么答案就是 f(i−1)+f(i−2)f(i - 1) + f(i - 2)f(i−1)+f原创 2021-09-23 19:33:20 · 111 阅读 · 0 评论 -
LOJ #10222. 「一本通 6.5 例 4」佳佳的 Fibonacci 题解
LOJ #10222. 「一本通 6.5 例 4」佳佳的 Fibonacci#10222. 「一本通 6.5 例 4」佳佳的 Fibonacci首先直接对于这个题目不好入手,我们不妨看看题目中 S(n)S(n)S(n) 是否有递推式,因为 T(n)=∑i=1nS(n)−S(i−1)T(n) = \sum_{i = 1} ^ n S(n) - S(i - 1)T(n)=∑i=1nS(n)−S(i−1)。这个说实话挺显然的。首先会想到 S(n)−S(n−1)=F(n)S(n) - S(n -原创 2021-09-23 15:41:08 · 359 阅读 · 0 评论 -
CF1182E Product Oriented Recurrence 题解
CF1182E Product Oriented RecurrenceCF1182E Product Oriented Recurrence看到这个 nnn 很大就会直接考虑矩阵乘法。我们直接把指数拿下来即可,分成两部分进行计算。对于 ccc 的部分有这样的矩阵:[c1c2c32n−62]×[0010010100011000011000011]\left[\begin{matrix}c_1 & c_2 & c_3 & 2n - 6 & 2\end{mat原创 2021-09-23 14:54:44 · 107 阅读 · 0 评论 -
P3702 [SDOI2017]序列计数 题解
P3702 [SDOI2017]序列计数P3702 [SDOI2017]序列计数首先这个真的要骂一下自己,这个第一步显然就是正难则反。如果直接考虑进行 Dp\tt DpDp 是否包含质数不是很方便我们可以直接使用容斥来做。我们考虑正难则反进行计算,也就是计算总方案减去全部是合数的方案。设 dp(i,j,k)dp(i, j, k)dp(i,j,k) 表示考虑到第 iii 位,总和 mod p=j\mod p = jmodp=j 是否有质数的方案。之后考虑转移本质上就是枚举每一个数然后将之前原创 2021-09-23 13:57:54 · 135 阅读 · 0 评论 -
CF718C Sasha and Array 题解
CF718C Sasha and ArrayCF718C Sasha and Array重点:矩阵乘法 a×(b+c)=ab+aca\times(b + c) = ab + aca×(b+c)=ab+ac。而且矩阵乘法是有结合律的:a×b×c=a×(b×c)a \times b \times c = a\times (b\times c)a×b×c=a×(b×c)但是 没有\color{red}\text{没有}没有 交换律!!发现这个下标的信息不是很好维护我们考虑将其放到矩阵里面进行维原创 2021-09-23 10:27:58 · 155 阅读 · 0 评论 -
论矩阵优化 Dp
CF718C P3702 CF1182E P5303 逼死强迫症 CF917C CF575A CF576D CF618G原创 2021-09-22 21:15:48 · 166 阅读 · 0 评论 -
CF383E Vowels 题解
CF383E VowelsCF383E Vowels。emmm 可以自己想出来的简单题。就是考虑容斥,也就是 A∪B=A+B−A∩BA \cup B = A + B - A \cap BA∪B=A+B−A∩B。三个数的情况也是同理。发现每个字符串的长度 =3= 3=3 所以我们可以直接对于集合大小是 333 的进行暴力容斥计算。之后我们考虑集合的合并,直接进行状压 Dp\tt DpDp,我们考虑删除最前面和最后面的那一位的贡献之和减去同时删除的贡献即可。或者说我们可以考虑更好写的情况。我们原创 2021-09-14 19:08:39 · 211 阅读 · 0 评论 -
CF1562E Rescue Niwen! 题解
CF1562E Rescue Niwen! CF1562E Rescue Niwen!应该是经典 Dp\tt DpDp 题目的变种。字符串 Lis\tt LisLis 直接做复杂度是 O(n3)O(n^3)O(n3) 的。我们来找寻一下这个的性质。也就是考虑对于一个字符串如果选择了他,肯定可以选择其之后的所有后缀,答案肯定会更优的。那么我们的 Lis\tt LisLis 可以枚举每个位置的起点,如果能加就肯定是直接加了。si>sjs_i > s_jsi>sj ..原创 2021-09-13 21:16:46 · 100 阅读 · 0 评论 -
CF1550F Jumping Around 题解
CF1550F Jumping Around CF1550F Jumping Around经典的转化,可能有点正难则反的意味。文章目录我的思路:\textbf{我的思路:}我的思路:题解:\textbf{题解:}题解:我的思路:\textbf{我的思路:}我的思路:可以看出因为 ddd 是不变的,所以对于一个逐渐增大的 kkk 可以到达的点是逐渐变多的,换言之就是具有单调性。有一个比较显然的想法,就是离线一下 kkk 考虑从小到大进行计算。考虑暴力,就是对于每一个 kkk 建图跑..原创 2021-09-13 18:44:18 · 134 阅读 · 0 评论 -
HDU6580 Milk 题解
HDU6580 Milk HDU 6580 Milk校内考试题目,感觉考试的时候没看这题,之后还被恶心了一下 …\dots…。文章目录考试的经过:题解:考试的经过:搞 T3\tt T3T3 嗯,很好简单二项式反演。好最后转换错了,没了。之后 30 minutes\tt 30 \ minutes30 minutes 诶呀这个不是网络流题吗?高分暴力呀!!之后没写出来,显然网络流不能处理这个东西,及时说每次修改终点那一段的权值。仅仅是样例就能说明费用流显然是直接...原创 2021-09-12 20:56:51 · 125 阅读 · 0 评论 -
Luogu P7444 「EZEC-7」猜排列 题解
P7444 「EZEC-7」猜排列这个是 2021.9.10\textbf{2021.9.10}2021.9.10 未完成的最后一题。就是先找找性质,发现 f(0)f(0)f(0) 的时候本质上就是不包含 000 的区间个数,不妨设 000 在位置 iii 那么显然 (i−1)×(n−i)=f(0)(i - 1) \times (n - i) = f(0)(i−1)×(n−i)=f(0)。最多有两个这样的位置。而且是对称的。之后我们考虑进行 Dp\tt DpDp 每次记录极大的区间也就是设原创 2021-09-10 15:13:17 · 122 阅读 · 0 评论 -
CF1299D Around the World 题解
CF1299D Around the World就是是否能有为 000 的路径直接会想到线性基,也就是里面的环是可以走或者不走的。我们写一手暴力发现大小为 555 的线性基的个数不会很多,那么我们可以考虑对于每个联通块存一个线性基。如果说联通块内部已经有环线性相关那么肯定是不能连边的。如果线性无关那么考虑题目给出的性质,也就是和 111 相连的环大小最多为 333。那么我们对于一个联通块最多有 222 个点和 111 相连。我们进行分类讨论有 222 条边相连的情况。断掉两条边也就是直接加入即可原创 2021-09-02 09:43:08 · 105 阅读 · 0 评论 -
CF762F Tree nesting 题解
CF762F其实这个题也不是很复杂。首先题目背景里说的是一个联通子图!!!发现数据范围其实不是很大,我们不妨钦定一个节点为根SSS 的节点。那么本质上对于 SSS 中的每一个节点我们都需要对 TTT 进行一次匹配。显然因为是联通子图是不可能进行树哈希的,我们考虑进行树形 DpDpDp。不妨考虑设 f(u,v,S)f(u, v, S)f(u,v,S) 表示对于 u∈S,v∈Tu \in S, v \in Tu∈S,v∈T 的情况,已经匹配了 TTT 中集合 SSS 的方案数。但是题目中说明的是原创 2021-09-01 21:52:44 · 204 阅读 · 0 评论 -
CF827F Dirty Arkady‘s Kitchen 题解
CF827F Dirty Arkady’s Kitchen说实话这个拆点和拆边都是可以过的。发现边是可以重复经过的,那么对于两条边只要考虑奇偶性就好了。我们考虑对于一条边拆成两部分,一个是起点为奇的,另外一个是偶的。什么时候一条路径是合法的,也就是说对于一条边 EEE,起点到他的路径上肯定存在一条边的上界是 ≥El\ge E_l≥El 的。注意这里边是会消失的。然后考虑加边的顺序,比较显然直接是从小到大进行加边。这样对于我们路径的上界肯定是从拓扑序比起小的边得到的,也就是意味着这条边出原创 2021-08-31 11:02:38 · 106 阅读 · 0 评论