题意:给你n个数,每次操作可以把一个区间内的数同时+1或者-1,求操作的最少次数
思路:直接贪心就行了,相邻数相差的数之和
总结:刚开始没想巧法,暴力模拟,然后WA掉,然后就重新列数据,重新写,哎。。
ac代码:
#include<stdio.h>
#include<math.h>
#include<string.h>
#include<stack>
#include<queue>
#include<vector>
#include<iostream>
#include<algorithm>
#define MAXN 1000100
#define LL long long
#define ll __int64
#define INF 0xfffffff
#define mem(x) memset(x,0,sizeof(x))
#define PI acos(-1)
using namespace std;
int a[MAXN];
int main()
{
int n;
int i,j;
while(scanf("%d",&n)!=EOF)
{
for(i=1;i<=n;i++)
scanf("%d",&a[i]);
ll ans=0;
for(i=1;i<=n;i++)
ans+=fabs(a[i]-a[i-1]);
printf("%I64d\n",ans);
}
return 0;
}