你是不是每次找最小数然后减?
其实你可以考虑,每次减都是整体减,分治成的两个子问题中最小数的相对大小和位置都不变,所以你可以维护偏移量,RMQ只需要求一次,这样复杂度可以降到 O(n log n)。
总之这题虽然简单,但是还是有意思的。数据加强没有必要,本来就是送分题。
by rushcheyo @ 2017-10-03 13:58:42
额,这题不是O(n)么
by HHCY @ 2017-10-16 21:00:34
好像是的O(n)可以
```cpp
#include<bits/stdc++.h>
using namespace std;
int h[100010];
int main()
{
int s=0,n,ans=0;
scanf("%d",&n);
for(int i=1;i<=n;i++)scanf("%d",&h[i]);
for(int i=1;i<=n;i++)
{
if(h[i]>s) ans+=h[i]-s;
s=h[i];
}
printf("%d",ans);
}
```
by МiсDZ @ 2017-10-24 17:25:05
要是加强了数据,我在洛谷上就A不了,就会去看题解,可能今天就把这题正解写出了呢……
唉,真可惜了。
要不加强下数据?
by Sweetlemon @ 2018-11-10 15:47:12