POJ 1135 Domino Effect

题我就没读懂。。。

其实是这样,把每一个key domino当做节点,他们之间的骨牌数目当作边权,用dijkstra处理一下得到的就是骨牌倒道该节点的最短时间,接下来我们要考虑在中间倒完的情况。

如果在两个节点中间倒完的话,也就意味着从起点经过两个key domino到终点,左右两边走过的时间是一样的,所以我们可以用(dis[a]+dis[b]+edge.cost)/2这个就可以求出在两点之间倒完需要多少时间,我们把每条边都这样过一遍,如果求出来的这个值比左右两边节点的dis都大,说明倒在中间,如果正好等于某一个节点的dis值,就把那个节点当作终点,把所有的边都这样过完之后,找到最大的(dis[a]+dis[b]+edge.cost)/2对应的终止情形,就是答案。

Leave a Reply

Scroll to top