Serendipity丶


私信TA

用户名:uq_38590416266

访问量:2433

签 名:

别人的屋檐再大,不如自己手中有伞

等  级
排  名 64
经  验 10627
参赛次数 0
文章发表 33
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

唯有提高自己的核心竞争能力,才可在逆流中不断前进。


解题思路:自己能够猜到 邮局的点肯定位于n户人家所包围形成的长方形内 讲每个点到n户人家的距离算出找最小就行

注意事项:

参考代码:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int a[10001],b[10001],c[10001];//a,b存数据,c为存放n户人家到邮局的距离 

int m,n,i,j,k=0;

cin>>m;

for(i=0;i<m;i++)

cin>>a[i]>>b[i];

int max1=0,max2=0,min1=10000,min2=10000;//求出a,b的最大与最小 可形成长方形矩阵 进而对每个点求距离 

for(i=0;i<m;i++)

{

if(max1<a[i])

max1=a[i];

if(min1>a[i])

min1=a[i];

}

for(i=0;i<m;i++)

{

if(max2<b[i])

{

max2=b[i];

}

if(min2>b[i])

min2=b[i];

}

for(i=min1;i<=max1;i++)

{

for(j=min2;j<=max2;j++)

{

int sum=0;//归零 

for(int p=0;p<m;p++)

{

sum=sum+fabs(a[p]-i)+fabs(b[p]-j);//sum存放n户人家到长方形中每个点的距离 

}

c[k++]=sum;//c存放距离 

}

}

int min3=10000;

for(i=0;i<k;i++)

if(min3>c[i])

min3=c[i];//求出最小即可 

printf("%d",min3);

return 0;

}


 

0.0分

0 人评分

  评论区

  • «
  • »