摘要: 首先做一个转化,这种转化很常见。题目里面讲要来回走一遍,所以就转化成两个从起点到终点,路径不重合那么很容易想到用f[i][j]表示第一个走到i,第二个人走到j还需要走的距离但是这里无法保证路径不重合,所以这里怎么设计状态很关键。我们设f[i][j]是1到max(i, ... 阅读全文
posted @ 2018-08-01 16:55 Sugewud 阅读(167) 评论(0) 推荐(0)
摘要: 很明显可以根据放不放建边,然后最一遍最长路即是答案DAG上的动态规划就是根据题目中的二元关系来建一个DAG,然后跑一遍最长路和最短路就是答案,可以用记忆化搜索的方式来实现细节:(1)注意初始化数组 (2)搜索的过程中最后记住加入状态本身的值,不然会... 阅读全文
posted @ 2018-08-01 16:12 Sugewud 阅读(116) 评论(0) 推荐(0)
摘要: 影响到状态的只有时间和在哪个车站(空间),所以可以设f[i][j]是时刻i的时候在第j个车站的最少等待时间因为题目中的等待时间显然是在0时刻1车站,所以答案为f[0][1],那么就提醒我们从大推到小,然后可以发现d[T][n]一定等于0,所以这个可以作为边界条件。同时... 阅读全文
posted @ 2018-08-01 12:23 Sugewud 阅读(144) 评论(0) 推荐(0)