比较复杂的一道题目,首先要分析几何关系,所有的几何线段的处理全部都要将其实点放置到原点,按比例算出可能飞行达到的点,然后计算各个点与点之间可能消耗的油的数量,然后按照迪杰斯特拉算法算出最终的结果即可,具体首先见如下代码:
#include<iostream>
#include<vector>
#include<string>
#include<set>
#include<stack>
#include<queue>
#include<map>
#include<algorithm>
#include<cmath>
#include<iomanip>
#include<cstring>
#include<sstream>
#include<cstdio>
#include<deque>
#include<functional>
using namespace std;
const double ex = 1e-6;
int compare(double t){
return (t > ex) - (t < (-ex));
}
class Point{
public:
double x, y;
Point operator-(const Point temp){
Point temp2;
temp2.x =x- temp.x;
temp2.y =y- temp.y;
return temp2;
}
Point operator+(const Point temp){
Point temp2;
temp2.x =x+ temp.x;
temp2.y =