AT3978 [ARC093A] Traveling Plan
需会知识点
数轴上表示两点间的距离有公式为 |A-B|。
就是两个点在数轴上对应的数的差的绝对值 。
题意:
从 0 出发。
需要去 N 个点(顺序随意)
需要去 N 个点(必须按顺序)。
最后再回到 0 。问假设第 i 个点不用走,走过的路程分别是多少 。
思路
按顺序走的。
假如第 i 个点不用走。
- 减去第 i-1 个点到第 i 个点的距离。
- 减去第 i 个点到第 i+1 个点的距离。
- 加上第 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;
}
本文来自博客园,作者:仙帝-dream,转载请注明原文链接:https://www.cnblogs.com/yyds123/p/15776928.html

浙公网安备 33010602011771号