在一个按照东西和南北方向划分成规整街区的城市里

源代码在线查看: pro222.cpp

软件大小: 2 K
上传用户: ddddong
关键词: 方向 城市
下载地址: 免注册下载 普通下载 VIP

相关代码

				/*****
				Problem C:邮局选地址
				
				Time Limit:1000MS  Memory Limit:65536K
				
				Total Submit:178 Accepted:57 
				
				Language: not limited
				
				
				Description 
				在一个按照东西和南北方向划分成规整街区的城市里,n个居民点散乱地分布在不同的街区中。用x 坐标表示东西向,用y坐标表示南北向。各居民点的位置可以由坐标(x,y)表示。街区中任意2 点(x1,y1)和(x2,y2)之间的距离可以用数值|x1-x2|+|y1-y2|度量。 
				居民们希望在城市中选择建立邮局的最佳位置,使n个居民点到邮局的距离总和最小。 
				编程任务: 
				给定n 个居民点的位置,编程计算n 个居民点到邮局的距离总和的最小值。
				
				Input 
				
				第1 行是居民点数n,1 =< n 				接下来n 行是居民点的位置,每行2 个整数x 和y,-10000 =< x,y 				
				Output 
				
				输出n 个居民点到邮局的距离总和的最小值。
				
				
				Sample Input 
				
				
				5
				1 2
				2 2
				1 3
				3 -2
				3 3
				
				Sample Output 
				
				
				10
				********************/
				/////////////////////////////////////////
				#include
				#include
				/*求绝对多数绝对值*/
				int nor(int a)
				{
				    if(a				    return(a);
				
				}
				//////////////////////////////////////////
				int main()
				{
				    int hang[10],lie[10];
				    int count1,count2,n;
				    int tempt;
				     int all=0;
				     cin >> n;
				    for(count1=0;count1				    {
				    	cin >>hang[count1]>>lie[count1];
				    }
				    for(count1=0;count1				    {
				        for(count2=n-1;count2>count1;count2--)
				        {
				            if(hang[count2]>hang[count2-1])
				            {
				                tempt=hang[count2];
				                hang[count2]=hang[count2-1];
				                hang[count2-1]=tempt;
				            }
				            if(lie[count2]>lie[count2-1])
				            {
				                tempt=lie[count2];
				                lie[count2]=lie[count2-1];
				                lie[count2-1]=tempt;
				            }
				        }
				    }
				
				
				    for(count1=0;count1				    {
				          all=all+nor(hang[count1]-hang[count1/2])+nor(lie[count1]-lie[count1/2]);
				    }
				    cout 				}
				
				
				
				
							

相关资源