科林明伦杯”哈尔滨理工大学第十届程序设计竞赛
存在n个数,每次操作可以任选一个区间使得区间内的所有数字减一。问最少多少次操作,可以让所有数都变成1。
数据保证一定有解。
输入描述:
输入t,代表有t组数据。每组数据输入n,代表有n个数。接下来一行输入n个数,数字大小小于1e6。(t<=1000,n<1e5,∑n < 1e6)
输出描述:
每组数据输出一个整数代表最少需要操作的次数。
链接:https://ac.nowcoder.com/acm/contest/5758/B
#include <stdio.h>
#include <string.h>
int a[1000006];
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
memset(a,0,sizeof(a));
int n;
int i;
scanf("%d",&n);
for(i=1;i<=n;i++)
scanf("%d",&a[i]); a[0]=1;
long long int s=0;
for(i=1;i<=n;i++)
{
if(a[i]-a[i-1]>0)s=s+(a[i]-a[i-1]);
}
printf("%lld\n",s);
}
return 0;
}