#J1012D. 旅行城市
旅行城市
题目限制
1000 ms 256 M
题目描述
你正在一个城市里旅游,这个城市里有个景点,你需要从号点出发,按顺序访问号点、号点...号点、号点并结束冒险,本来是这样的。
但是你感觉有些累,希望跳过其中的若干个点。设你跳过了个点,则你跳过点的花费为:
若,则花费为。
若,则花费为。
而你路上总花费为:对于未跳过的剩余点,相邻点的距离之和。
需要注意的是,你必须号点出发,号点结束,故号点和号点不允许跳过。
对于平面上两点ab,ab的距离是线段ab的距离,可以使用函数计算:。
现在你希望跳过个或者若干个点,使得自己的跳过景点的花费+路上总花费最小。请你输出一个三位小数表示你的答案。
输入格式
第一行一个正整数表示景点数量。
接下来行,每行两个整数。第行表示第个景点的横纵坐标。
输出格式
输出一个三位小数表示最小的跳过景点的花费+路上花费。
数据范围
对于20%的数据,保证为0,为0或1。
对于40%的数据,保证。
对于60%的数据,保证。
对于100%的数据,保证,不保证每个景点的坐标不同。
输入样例 1
2
0 0
10000 10000
输出样例 1
14142.136
输入样例 2
6
0 0
1 1
2 0
0 1
1 0
2 1
输出样例 2
5.828
样例解释
样例解释1
尽管号点到号点距离很大,但不允许跳过和号点,所以不得不走完全程,距离为。
样例解释2
你可以跳过、号点,经过、、、号点。所需花费如下:
号点至号点花费为
号点至号点花费为
号点至号点花费为
跳两个点,花费为。
总花费为。
相关
在下列比赛中: