URAL1016
前边做的都是难度500以下的,找了这道难度722的挑战,从昨天下午做到凌晨1点,终于过了,庆祝下! 昨天时间是0.14秒,今天理清思路修改了程序,程序结构更清晰了,时间也快了些,0.125秒了,不知道为什么用Java1.7 0.125秒好像是极限了。目前的算法,空间和时间复杂度应该都是最优的了。
这道题是单源最短路径问题的变种,可使用Dijkstra算法实现,算法思路:在棋盘的任意单元格内,立方体最多有24种状态。将每个单元格内立方体的每种状态视为图的一点,即可转化为单源最短路径问题。