题解 P1317 【低洼地】
这题只需要运用去重的方法就可以顺利解决问题。
因为一段连续的低洼地其实只算一个,所以只要把连续的低洼部分变成一个位置就可以了,即去重。
C++代码
#include <cstdio>
using namespace std;
const int N = 1e4 + 8;
int n, data[N], ans[N], cnt, sum;
int main() {
scanf("%d", &n);
for(int i=1; i<=n; i++) {
scanf("%d", &data[i]);
if(data[i] != data[i-1]) ans[++cnt] = data[i];//不相同加入数组,去重
}
for(int i=2; i<cnt; i++)
if(ans[i-1] > ans[i] && ans[i] < ans[i+1]) sum ++;//低洼地特征就是一个位置比左右两边小,这里判断就行了
printf("%d", sum);
return 0;
}
附上图片: