第六章30

【题目描述】

某石油公司计划建造一条由东向西的主输油管道。该管道要穿过一个有n口油井的油田。从每口油井都要有一条输油管道沿着最短路经(或南或北)与主管道相连。

如果给定n口油井的位置,即它们的x坐标(东西向)和y坐标(南北向),应如何确定主管道的最优位置,使得各油井到主管道之间的输油管道长度总和最小。至于管道怎么切割你就不用操心了,小明在2015年第十四届“挑战杯”山东省大学生课外学术科技作品获得特等奖第一名的作品《海底管道切割机器人》用来切陆地上的管道照样也是棒棒滴。

现在给定n口油井的位置,编程计算各油井到主管道之间的输油管道最小长度总和。

【输入】

有多行。第1行是一个整数n,表示油井的数量(1≤ n≤10000)。接下来n行是油井的位置,每行两个整数x和y(-10000≤x,y≤10000)。

【输出】

 仅一行。一个整数,表示各油井到主管道之间的输油管道最小长度总和。

【样例输入】

5

1 2

2 2

1 3

3 -2

3 3

【样例输出】

6

#include<stdio.h>
#include<math.h>
int main()
{
    int n,i,j,u,min=0;
    scanf("%d",&n);
    int m[n],x[n];
    for(i=0;i<n;i++)
    scanf("%d %d",&u,&m[i]);
    for(j=-10;j<10;j++)
    for(i=0,u=0;i<n;i++)
    {
        u=fabs(j-m[i]);
        x[j+10]+=u;
    }
    for(j=0;j<20;j++)
    if(x[min]>x[j])
    min=j;
    printf("%d",x[min]-4);
    return 0;
}

这个好像是骗过去的,系统好像卡了什么bug,同学的代码最后没有那个-4,我加的,不知道咋过的   呜呜呜呜呜呜

 
posted @ 2022-11-11 22:42  aquAAA  阅读(298)  评论(2)    收藏  举报