邮局选址.c

来自「算法分析ACM题目:邮局选址算法 保证能运行!算法分析课程必备!」· C语言 代码 · 共 33 行

C
33
字号
#include"math.h"
#include"malloc.h"
int main()
{
  int n,i,j,*a,*b,*c,*d,x,y,min;
  scanf("%d",&n);
  a=(int *)malloc(sizeof(int)*n);
  b=(int *)malloc(sizeof(int)*n);
  c=(int *)malloc(sizeof(int)*n);
  d=(int *)malloc(sizeof(int)*n);
  for(i=0;i<n;i++)
   {scanf("%d %d",a+i,b+i);
   *(c+i)=*(d+i)=0;
   }
  for(i=0;i<n;i++)
    for(j=0;j<n;j++)
    { if(i==j) continue;
      *(c+i)=*(c+i)+abs(*(a+i)-*(a+j));
      *(d+i)=*(d+i)+abs(*(b+i)-*(b+j));
    }
  j=*c;
  x=0;
  for(i=1;i<n;i++)
     if(j>*(c+i)) {j=*(c+i);x=i;}
  j=*d;
  y=0;
  for(i=1;i<n;i++)
     if(j>*(d+i)) {j=*(d+i);y=i;}
  min=*(c+x)+*(d+y);
  printf("%d\n",min);
  return 0;
} 

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?