题目链接:点击打开链接
这是一个悲伤的故事,看到题目提示,说是并查集,然后就一直想怎么去用并查集呢?!
结果显然是没有发现怎么做。
后来想到直接暴力,但是考虑到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 ", cnt); } return 0; }