傳送門
思路:這個題目預處理起來比較麻煩,由於題目中說了乙個城市有四個機場,但是指給定三個,所以需要我們自己去求第四個點,這個過程就需要列舉哪乙個點為直角頂點然後再求第四個。求出第四個點後在預處理出任意兩個機場之間的花費(注意區分同乙個城市和不同城市),然後再跑dij即可.
求第四個點只需列舉一下哪個點所對應的邊為斜邊在通過斜率計算即可
#include#define inf 0x3f3f3f3f
#define pb push_back
using namespace std;
const int maxn = 1e2+5;
int s,t,a,b;
struct node
a[maxn];
double mp[maxn << 2][maxn << 2],ans;
int cal(int id)
double dis(int x1,int y1,int x2,int y2)
void get(int cur,int ti)
else if(mx == d1)
else
for(int i = 0;i < 4;++i)
for(int j = i+1;j < 4;++j)
}void dij(int sta)
dis[sta] = 0;
for(int i = 1;i <= s;++i)
}if(u != -1)
vis[u] = 1;
for(int j = 1;j <= s;++j)
}int p = cal(b);
for(int j = 0;j < 4;++j)
return ;
}int main()
for(int i = 0;i <= s;++i)
for(int j = 0;j <= s;++j)
mp[i][j] = mp[j][i] = inf;
for(int i = 1;i <= s;++i)
for(int i = 1;i <= s;++i)}}
}s <<= 2;
ans = inf;
a = cal(a);
for(int i = 0;i < 4;++i)
printf("%.1f\n",ans);
}return 0;
}
CODEVS 1041Car的旅行路線
我在此 的基礎上做進一步的說明解釋。include include include include include using namespace std const double oo 10000000 城市的飛機場 x 1 4 1代表第x個城市開始的飛機場下標 define ctoa x x 1...
wikioi 1041 Car的旅行路線
建圖是關鍵機場通過鐵路,城市有4個機場可以到達,可以出發 告訴3個點有多個情況 1,2為對角,1,3為對角,2,3為對角 include include include include includeusing namespace std double map 110 5 110 5 i的k1到j的...
Car的旅行路線
題目描述 description 又到暑假了,住在城市a的car想和朋友一起去城市b旅遊。她知道每個城市都有四個飛機場,分別位於乙個矩形的四個頂點上,同乙個城市中兩個機場之間有一條筆直的高速鐵路,第i個城市中高速鐵路了的單位里程 為ti,任意兩個不同城市的機場之間均有航線,所有航線單位里程的 均為t...