codeforce 602C The Two Routes

原题地址


题意

一个城市有N个小镇,部分小镇之间有铁路相连,当且仅当两个小镇之间没有铁路相连时,会有公路相连。

两个人同时从编号1的小镇前往编号N的小镇,分别坐火车和坐汽车,火车和汽车每经过一条边都花费一小时,要求两个人不可以同时到达除了N之外的小镇,最小化两个人中后到达的那人花费的时间


题解

乍一想这个“要求两个人不可以同时到达除了N之外的小镇”非常之难处理,以为是DPbalabala的

然后搜了发题解

因为两点之间要么铁路相连,要么公路相连,所以1-N一定直接连通,对应地那个人花费一小时到达,不经过任意中间顶点……

问题变成了最短路,N很小,可以floyd解决,当然也可以dijkstra


代码我都不想上了,写的dijkstra但是很丑……

你可能感兴趣的:(codeforce,div2,C)