街区最短路径问题
来源:互联网 发布:mac 打开icloud 编辑:程序博客网 时间:2024/04/25 16:52
街区最短路径问题
- 街区最短路径问题
- 描述
- mycode
描述
一个街区有很多住户,街区的街道只能为东西、南北两种方向。住户只可以沿着街道行走。各个街道之间的间隔相等。用(x,y)来表示住户坐在的街区。例如(4,20),表示用户在东西方向第4个街道,南北方向第20个街道。现在要建一个邮局,使得各个住户到邮局的距离之和最少。求现在这个邮局应该建在那个地方使得所有住户距离之和最小;
输入
第一行一个整数n<20,表示有n组测试数据,下面是n组数据;每组第一行一个整数m<20,表示本组有m个住户,下面的m行每行有两个整数0<x,y<100,表示某个用户所在街区的坐标。m行后是新一组的数据;
样例输入
231 12 11 252 9 5 2011 91 11 20
样例输出
244
##分析
邮局坐标(a,b),用户有n家,坐标一次为(X1,Y1)到(Xn,Yn)。题目要求min(∑|xi-a|)+min(∑|yi-b|;)
- 我们不妨把两个式子单独来看。例如只看min(∑|xi-a|),就相当于求一条直线上点a到剩余点X1~Xn最小距离。
- 于是我们将X1~Xn排序,当a点在数量平分X1~Xn时,有最小值。
mycode
#include <iostream>#include <vector>#include <algorithm>#include <functional>using namespace std;int path(vector<int> & vc){ vector<int>::iterator begin; vector<int>::iterator end; begin = vc.begin(); end = vc.end()-1; int sum = 0; while(begin < end){ sum += *end - *begin; begin++; end--; } return sum;}int main(){ int n; cin >> n; while(n--){ vector<int> hang; vector<int> lie; int m; cin >> m; int x,y; for(int i = 0; i < m; ++i){ cin >> x >> y; hang.push_back(x); lie.push_back(y); } //排序 sort(hang.begin(),hang.end()); sort(lie.begin(),lie.end()); // print(lie); // print(hang); int sum = 0; sum += path(hang); sum += path(lie); cout << sum << endl; }}
别人写的代码
#include<iostream>#include<algorithm>using namespace std;int x[30],y[30],n,m,i;;int main(){ cin>>n; while(n--) { cin>>m; for(i=0;i<m;i++) cin>>x[i]>>y[i]; sort(x,x+m); sort(y,y+m); int sum=0; for(i=0;i<m/2;i++) sum+=x[m-1-i]-x[i]+y[m-1-i]-y[i];//这一句话值得我学习。 cout<<sum<<endl; } return 0;}
0 0
- 街区最短路径问题
- 街区最短路径问题
- 街区最短路径问题
- 街区最短路径问题
- 街区最短路径问题
- 街区最短路径问题
- 街区最短路径问题
- 街区最短路径问题
- 街区最短路径问题
- 街区最短路径问题
- 街区最短路径问题
- 街区最短路径问题
- 街区最短路径问题
- 街区最短路径问题
- 街区最短路径问题
- 街区最短路径问题
- 街区最短路径问题
- 街区最短路径问题
- Reactor构架模式
- Wunder Fund Round 2016 D. Hamiltonian Spanning Tree
- hdu 1907 John 尼姆博奕
- Maven学习 (四) 使用Nexus搭建Maven私服
- 数据类型
- 街区最短路径问题
- Java IO流学习总结
- HDU 5505 GT and numbers
- hdu——2019数列有序!
- 蓝桥杯 基础练习 字母图形 有瑕丝
- 三个特殊的同余式
- 莫比乌斯反演的学习(HDU1695)
- hdu 2509 Be the Winner 尼姆博奕
- Maven学习 (五) Elipse中发布一个Maven项目到Tomcat