摘要: 解题 首先缩点没啥可说的,然后考虑枚举这次逆行的边。具体来说在正常的图和反图上各跑一次最长路,然后注意减掉起点的贡献,用拓扑排序实现(我这里瞎写了个Bellman_Ford,其实在DAG上这好像和拓扑排序的复杂度是一样的=。=) 一个细节:注意可能整个图是个强连通分量,所以答案初始是起点所在的强联通 阅读全文
posted @ 2018-10-23 22:06 Speranza_Leaf 阅读(129) 评论(0) 推荐(0)
摘要: 题面 还以为是差分约束,原来拓扑排序也能解决这样的问题=。= 类似差分约束的建图方式,我们把大小关系看做有向边。这样一来图上是不允许存在环的,于是我们可以做拓扑排序。然后问题来了,边数非常大,根本建不出图来=。= 不过我们有一个套路的做法,为每个区间配一个虚点,然后连边时先连到虚点再连到各个目标点。 阅读全文
posted @ 2018-10-23 21:59 Speranza_Leaf 阅读(174) 评论(0) 推荐(0)
摘要: 题面 这个题是比较套路的做法啦,建反图后缩点+拓扑排序嘛,对于所有处在$size>=2$的SCC中的点都是无限解(可以一直绕) 然后注意统计的时候的小细节,因为无限解/大解也要输出,所以我们把这些点统一统计成36501,然后所有的方案都对36501取min就可以很方便的输出了 1 #include< 阅读全文
posted @ 2018-10-23 21:29 Speranza_Leaf 阅读(135) 评论(0) 推荐(0)
摘要: 题面 因为每次只能载一头牛,所以总路程=每头牛的距离+回头路的最短距离,于是问题变成了如何求回头路的最短距离 我们可以把起点和终点存在两个数组里,然后将两个数组排序后取对应位置相减的绝对值就是每次走回头路的最短距离。然后鬼畜的地方来了,Bessie的起点和终点是特殊的,我们要将她的起点放入终点的数组 阅读全文
posted @ 2018-10-23 20:18 Speranza_Leaf 阅读(175) 评论(0) 推荐(0)