码迷,mamicode.com
首页 > 其他好文 > 详细

SCPS_102

时间:2019-11-06 10:24:27      阅读:59      评论:0      收藏:0      [点我收藏+]

标签:amp   scp   span   最长路   观察   存在   数据   开始   一个   

    $\Huge % Dybala$

 

    T1 神奇单调栈,但是有点码农,要对着对拍调很久。

    T2

      观察到队长跑到i点之后,前面的[1,i)的点都被经过了偶数次,再次到达的时候又得被暗杀

      所以通过点i的花费可以看成一个区间和的形式

    T3

      按拓扑序枚举。

      由于起点&终点未知,建超级源汇。

      然后最长路一定以源开始,以汇结束了。

      如何在删去一个点以后抹除所有经过它的最长路?

      考虑把最长路的长度唯一存储在边中,那么删掉这条边就删掉了经过它的最长路

      如何保证唯一存储?

      由于最长路也是在原图的拓扑序中的,只要保证数据结构中不存在有祖先关系的两条边,则一条路一定经过数据结构中的有且只有一条边。

      就沿着拓扑序枚举就行了,删掉入边加入出边,是满足上述条件的。

      删之后加之前,数据结构里的最大值就是不经过这个点的最长路。

SCPS_102

标签:amp   scp   span   最长路   观察   存在   数据   开始   一个   

原文地址:https://www.cnblogs.com/yxsplayxs/p/11803509.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!