链接:https://ac.nowcoder.com/acm/contest/5758/B
来源:牛客网
存在n个数,每次操作可以任选一个区间使得区间内的所有数字减一。问最少多少次操作,可以让所有数都变成1。
数据保证一定有解。
输入描述:
输入t,代表有t组数据。每组数据输入n,代表有n个数。接下来一行输入n个数,数字大小小于1e6。(t<=1000,n<1e5,∑n < 1e6)
输出描述:
每组数据输出一个整数代表最少需要操作的次数。
示例1
输入
复制
1
6
1 3 5 2 7 1
输出
复制
9
题目大意:存在n个数,每次操作可以任选一个区间使得区间内的所有数字减一。问最少多少次操作,可以让所有数都变成1。
数据保证一定有解。
#include<bits/stdc++.h>
using namespace std ;
typedef long long ll;
ll t,n,sum;
ll a[100005];
int main(){
cin>>t;
while(t--){
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i];
a[i]=a[i]-1;
}
sum=0;
for(int i=1;i<=n;i++)
{
if(a[i]>=a[i-1]){
sum+=a[i]-a[i-1];
}
}
cout<<sum<<endl;
}
return 0;
}
1887

被折叠的 条评论
为什么被折叠?



