51nod 1096 距离之和最小(水题日常)
基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题
X轴上有N个点,求X轴上一点使它到这N个点的距离之和最小,输出这个最小的距离之和。
Input
第1行:点的数量N。(2 <= N <= 10000) 第2 - N + 1行:点的位置。(-10^9 <= P[i] <= 10^9)
Output
输出最小距离之和
Input示例
5 -1 -3 0 7 9
Output示例
20
n<=10000 暴力!!
屠龙宝刀点击就送
#include <iostream> #include<bits/stdc++.h> #define INF 0x7ffffffffff #define ll long long using namespace std; ll a[11000]; int main() { int n; cin>>n; for(int i=0;i<n;i++) scanf("%lld",&a[i]); ll ans=INF; for(int i=0;i<n;i++) { ll sum=0; for(int j=0;j<n;j++) sum+=(ll)abs(a[i]-a[j]); ans=min(ans,sum); } cout<<ans<<endl; }
我们都在命运之湖上荡舟划桨,波浪起伏着而我们无法逃脱孤航。但是假使我们迷失了方向,波浪将指引我们穿越另一天的曙光。