输油管道问题
来源:互联网 发布:mac重装失败 编辑:程序博客网 时间:2024/05/21 17:56
某石油公司计划建造一条由东向西的主输油管道。该管道要穿过一个有n 口油井的油田。从每口油井都要有一条输油管道沿最短路经(或南或北)与主管道相连。如果给定n 口油井的位置,即它们的x 坐标(东西向)和y 坐标(南北向),应如何确定主管道的最优位置, 即使各油井到主管道之间的输油管道长度总和最小的位置?
1)编程任务:
给定n 口油井的位置,编程计算各油井到主管道之间的输油管道最小长度总和。
2)数据输入:
油井数量n,每口油井的横坐标xi,纵坐标yi
3)结果输出: 油井到主管道之间的输油管道最小长度总和。
#include<iostream>#include<cmath>#define M 100using namespace std;void px(int a[M],int n){ int b=a[n-1]; for(int i=0;i<n-1;i++){ if(a[i]>b){ b=a[i]; a[i]=a[n-1]; a[n-1]=b; } } if(n>2){ px(a,n-1); }}int main(){ int n,s,p=0,i; cout<<"请输入油井个数n"<<endl; cin>>n; int x[M],y[M]; for(i=0;i<n;i++) { cout<<"请输入油井"<<i+1<<"的坐标"<<endl; cin>>x[i]; cin>>y[i]; } px(y,n); s=n/2; for(i=0;i<n;i++) { p += fabs(y[s]-y[i]); } cout<<p<<endl; for(i=0;i<n;i++) cout<<y[i]<<" "; return 0;}
输入
5
1 2
3 5
3 7
3 4
2 7
输出
8
2 4 5 7 7
0 0
- 输油管道问题
- 输油管道问题
- 输油管道问题
- 输油管道问题
- 输油管道问题
- 输油管道问题
- 输油管道问题
- 输油管道问题
- 输油管道问题
- 输油管道问题
- 输油管道问题
- 输油管道问题
- 输油管道问题
- 南邮-1206-输油管道问题
- 中位数-输油管道问题
- 输油管道问题-分治
- 【a202】&&【9208】输油管道问题
- 输油管道问题 分治算法
- Windwos下MySQL压缩包的安装方法
- windows安装zookeeper、kafka
- 深入理解javascript原型和闭包(8)——简述【执行上下文】上
- Maven-->Enable Workspace Resolution
- Textview多行时,最后结尾处显示省略号
- 输油管道问题
- 挂载mount
- 设计模式
- 作业GFOJ471(sg函数)
- 模仿Wireshark网络抓包工具实现---c++
- 我的第一篇博客
- 399. Evaluate Division
- Java多线程系列--“基础篇”07之 线程休眠
- codefoces #404 C. Anton and Fairy Tale