3929城市路径。(marathon)

3929   城市路径。(marathon)

题目描述

地图上有n个城市,一只奶牛要从一号城市开始依次经过这些城市,最终达到n号城市。但是这只奶牛觉得这样太无聊了,所以它决定跳过其中一个城市(但不能跳过1号和n号城市),使它从一号城市开始,到达n号城市所经过的距离最小。假设每一个城市i都有一个坐标(x,y),从x1,y1的城市1到(x2, y2)的城市2之间的距离为|x1-x2|+|y1-y2|。

输入格式:

第一行1个正整数n,表示城市个数。
接下来的n行,每行2个数x和 yi,表示城市i的坐标。

输出格式:

一行一个数,使得它从一号城市开始,跳过某一个城市,到达n号城市所经过的最小距离。
输入样例 复制
4
0 0
8 3
11 -1
10 0
输出样例 复制
14

说明

设f(i)为从城市1依次跳到城市i的距离之和,设g(i)为从城市i依次跳到城市n的距离之和,则问题的答案为min{f(i-1)+g(i+1)+dis【i-1,i+1】}。其中,dis【i-1,i+1】表示城市i到城市i+1的曼哈顿距离,f(i)和g(i)都可以用递推来预处理求出:f(i)=f(i-1)+dis【i-1,i】,g(i)=g(i+1)+dis【i,i+1】.
也可以设f(i)为从城市1依次跳到城市n,且跳过城市i的距离之和,sum表示从城市1跳到城市n的距离之和,则f(i)=min{sum-dis【i,i-1】-dis【i+1,i】+dis【i-1,i+1】}
1
1
通过提交
时空限制1000ms/256mb
题目来源
评测方式在线评测
题目类型递推
难        度