CodeForces - 1392C Omkar and Waterslide(思维)

tech2025-11-19  2

题意:每次可以选一个区间去加一,最后形成一个非递减序列

题记:其实每一个数都只跟它前一个数有关。分成两种情况。时间复杂度

当前这个数比前一个数小:答案需要加上前一个数与当前数的差值。

当前这个数比前一个大或等于:不需做任何操作。

#include<iostream> #include<cstdio> using namespace std; typedef long long ll; const int N=2e5+10; int main(){ int T; cin>>T; while(T--){ int n; cin>>n; int x,lx; cin>>lx; int mmax=lx; ll ans=0; for(int i=1;i<n;i++){ cin>>x; if(x<lx){ ans+=lx-x; } lx=x; } cout<<ans<<endl; } return 0; }
最新回复(0)