版权声明:虽然本蒟蒻很菜,但各位dalao转载请注明出处谢谢。 https://blog.csdn.net/xuxiayang/article/details/88915286
在一个长度为 的数轴的正半轴上有 个牛,它们要从 到达 ,你有一辆车,你需要把所有牛带到目的地,但你的车只能带一个牛,求从0出发载完所有牛并到达 的最小行驶路程总长度
首先带牛走的路程是一定要走的
现在我们要加上一段会带来影响的路程即可
显然是排序后的差值,时间复杂度:
#include<cstdio>
#include<algorithm>
using namespace std;int n,m,a[100001],b[100001];
long long ans;
signed main()
{
scanf("%d%d",&n,&m);
for(register int i=0;i<n;i++) scanf("%d%d",a+i,b+i),ans+=abs(a[i]-b[i]);
a[n]=m;b[n++]=0;
sort(a,a+n);sort(b,b+n);
for(register int i=0;i<n;i++) ans+=abs(a[i]-b[i]);
printf("%lld",ans);
}