AT3978 [ARC093A] Traveling Plan

 需会知识点


数轴上表示两点间的距离有公式为 |A-B|。

就是两个点在数轴上对应的数的差的绝对值

题意:

从 0 出发。

需要去  N  个点(顺序随意)

需要去  N  个点(必须按顺序)。

最后再回到 0 。问假设第 i 个点不用走,走过的路程分别是多少 。

 思路

按顺序走的。

假如第 i 个点不用走。

  1.  减去第 i-1 个点到第 i 个点的距离。
  2.  减去第 i 个点到第 i+1 个点的距离。
  3.  加上第 i-1 个点到第 i+1 个点的距离。

 注意!:

第 0 个点和第 n+1 个点全都是 0 。

AC:

#include<bits/stdc++.h>
using namespace std;
int a[100001],n,ans;
int main(){
cin>>n;
for(int i=1;i<=n;++i) cin>>a[i];
int b=0;
for(int i=1;i<=n+1;++i) b+=abs(a[i]-a[i-1]);
for(int i=1;i<=n;++i){
ans=b-abs(a[i]-a[i-1])-abs(a[i+1]-a[i])+abs(a[i+1]-a[i-1]);
cout<<ans<<endl;
}
cout<<endl;

 

posted @ 2022-01-07 21:34  仙帝-dream  阅读(58)  评论(0)    收藏  举报