题目链接:点击打开链接
这是一个悲伤的故事,看到题目提示,说是并查集,然后就一直想怎么去用并查集呢?!
结果显然是没有发现怎么做。
后来想到直接暴力,但是考虑到O(n^2)估计会TLE啊!!一直就没敢去写
后来看了人家的代码。都是直接暴力 :(
附上我的代码:
#include <cstdio>
int n, p[50005];
int main() {
while (~scanf("%d", &n) && n) {
for (int i = 0; i < n; i++)
scanf("%d", p + i);
int cnt = 0, min, max;
for (int i = 0; i < n; i++) {
min = max = p[i];
for (int j = i; j < n; j++) {
if (min > p[j])
min = p[j];
else if (max < p[j])
max = p[j];
if (max - min == j - i)
cnt++;
}
}
printf("%d\n", cnt);
}
return 0;
}