感觉 E 是错题

没有理解错的话,E 的题意如下:

给 n 个点,m 条边。

有辆车,车只要行驶必须以最大速度运行,从停止到启动需要花费 5s。每条边的花费的时间给定。

每个点有个红绿灯,持续时间分别是 g,y,r,然后循环。如果到这个点时遇到的是绿灯或黄灯,可以直接前进去下一个点;如果到这个点时遇到的是红灯,必须停止等绿灯。

从 s 出发到 e 的最短时间。

大部分 ac 的代码用了很简单的 dijkstra,但按这个题意这题显然没有这么简单。

考虑以下样例:

4 3 0 3
100 100 100
100 100 100
5 5 10
100 100 100
0 1 1
1 2 4
2 3 1
0 0 0 0

所有 ac 的代码返回的答案都是 26s。也就是 0 到 1 花了 6s,1 到 2 花了 4s,等一个 10s 的红绿灯,然后用 5s 启动,然后从 2 到 3 花了 1s,总计 26s。

但这个样例的答案应该是 21s。先从 0 到 1,然后 1 到 0,0 到 1 绕圈圈,直到 16s 的时候才从 1 出发到 2,这时候可以直接卡到 2 的绿灯,不需要等 5s,所以答案是 21s。

因此,我认为按照这个题意,所有的 ac 代码均错误,不确定我对题意的理解是否有误。

全部评论

相关推荐

04-02 16:49
门头沟学院 Java
_bloodstream_:我也面了科大讯飞,主管面的时候听说急招人优先考虑能尽快实习的,我说忙毕设,后面就一直没消息了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务