题目
思路
签到题看看就好,反正难的题咱也不会
对于凡凡来说,只有非降序的数组才是nice的,如果数组长度为1,也是nice的
难么我们只需要统计这个数组中的每一段非降序数组的长度即可
统计了每一段的长度以后,由小学二年级知识我们知道长度为n的数组有 ∑ i = 1 n i \sum_{i=1}^{n}{i} ∑i=1ni 个子数组,再根据这个公式求出答案即可
代码
#include <iostream>
using namespace std;
int main() {
int last = 0;
int temp;
int n;
long long res = 0;
long long count = 0;
cin >> n;
while (n-- > 0) {
cin >> temp;
//如果大于等于上一个数,nice数组长度+1
//否则计算子数组的个数,长度重置为1
if (temp >= last) {
count++;
} else {
res += count * (count + 1) / 2;
count = 1;
}
last = temp;
}
//处理一下最后剩下的nice数组
res += count * (count + 1) / 2;
cout << res;
}