题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=247
题目大意:梦幻国有N个城市和M条道路,每条道路连接某两个城市。任意两个城市之间最多只有一条道路直接相连。这M条道路中有一部分为单向通行的道路,一部分为双向通行的道路。同一种商品在不同城市的价格不一定相同。但是,同一种商品在同一个城市的买入价和卖出价始终是相同的。虚拟城市之旅,允许你在旅游的同时,利用 X 商品在不同城市中的差价赚回一点旅费,但最多只能交易一次。即,在某个城市买入X 商品,可以走到另外一个城市买掉来获得旅费。当然,在赚不到差价的情况下,你也可以不进行贸易活动。
设梦幻国N个城市的标号从1~ N,你只能从1 号城市出发,并最终在N 号城市结束自己的旅行。在旅游的过程中,任何城市可以重复经过多次,但不要求经过所有N个城市。
思路:将原图存储为正向图,再存储其反向边为反向图,然后分别记录正向图中从1开始可达的各城市的最小值,反向图中从t开始可达的各城市的最大值,然后两个值的差即为可赚取的最大旅费