Escape from the Island
链接
题目意思,好绕:
给一个图,n个点,m个边。有向。
一个人要从起点 S 开始走,要去 n 点。
把有向图看成无向图自己选路走,最多走k次,可以不走。
走完后,在停的那个点的地方,随机走一个有向边。如果没有出边,就不走了。
这个人要尽快的走到 n 这个点。
问走的时间最长是多少?
(也就是每次随机都走最不合适的路)
如果走不到输出 -1。
题解
我好菜啊,, 每次写题解都想抒发一遍 我好菜啊
这个题还可以拆点,比较容易理解, (下个博客)
dp[i][j] 表示第i个点前面已经走了j条边 。 0 <= j <= k;
也就是说 dp[i][0] 表示这是从哪个点飘到的 i 这个点。这一步要走有向图。
状态转移:
倒着遍历,从n 开始,
走的时候要走无向图,但是飘的时候走的是有向图。这个怎么处理?直接存无向图。用前向星存图,这样的话可以标记出来 %2==0 是正边&#x