某石油公司計畫建造一條由東向西的主輸油管道。該管道要穿過乙個有n 口油井的油田。從每口油井都要有一條輸油管道沿最短路經(或南或北)與主管道相連。如果給定n 口油井的位置,即它們的x 座標(東西向)和y 座標(南北向),應如何確定主管道的最優位置, 即使各油井到主管道之間的輸油管道長度總和最小的位置?
1)程式設計任務:
給定n 口油井的位置,程式設計計算各油井到主管道之間的輸油管道最小長度總和。
2)資料輸入:
油井數量n,每口油井的橫座標xi,縱座標yi
3)結果輸出: 油井到主管道之間的輸油管道最小長度總和。
輸入#include
#include
#define m 100
using
namespace
std;
void px(int a[m],int n)
}if(n>2)
}int main()
px(y,n);
s=n/2;
for(i=0;ifabs(y[s]-y[i]);
}cout
<" ";
return
0;}
5 1 2
3 5
3 7
3 4
2 7
輸出 8
2 4 5 7 7
輸油管道問題
某石油公司計畫建造一條由東向西的主輸油管道。該管道要穿過乙個有n口油井的油田。從每口油井都要有一條輸油管道沿最短路經 或南或北 與主管道相連。如果給定n口油井的位置,即它們的x座標 東西向 和y座標 南北向 應如何確定主管道的最優位置,即使各油井到主管道之間的輸油管道長度總和最小的位置?給定n口油井...
輸油管道問題
根據中位數定理,要使總和距離最小,應該選擇中位數作為目標點。因此解決此問題的方法就是將各個油井投影到y軸,找到y座標的中位數即可。解題思路 要找出乙個數的中位數,最簡單的方法就是對陣列進行排序,但是快速排序的時間複雜度也需要o nlogn 對與有序陣列a n 如果陣列是奇數個,中位數就是a n 2 ...
演算法 輸油管道問題
問題描述 某石油公司計畫建造一條由東向西的主輸油管道。該管道要穿過乙個有n 口油井的油田。從每口油井都要有一條輸油管道沿最短路經 或南或北 與主管道相連。如果給定n口油井的位置,即它們的x 座標 東西向 和y 座標 南北向 應如何確定主管道的最優位置,即使各油井到主管道之間的輸油管道長度總和最小的位...