考察一点思维能力的数据结构水题……
如果 wi=[ai≥b],其中 ai 表示第 i 块巨石的海拔,b 表示当前海拔,容易发现答案就是 n∑i=1wi−n∑i=2min(wi,wi−1)。
为什么呢?每一个连续段的开头的前一个必定是 0(除了 a1 作为开头的),故第二个和式统计所有非开头的 1 的个数。
每一个开头就能对应一个连续段,于是答案就出来了。
随便用个数据结构维护就行了,平衡树树状数组线段树随便写。
代码:
1 |
|
考察一点思维能力的数据结构水题……
如果 wi=[ai≥b],其中 ai 表示第 i 块巨石的海拔,b 表示当前海拔,容易发现答案就是 n∑i=1wi−n∑i=2min(wi,wi−1)。
为什么呢?每一个连续段的开头的前一个必定是 0(除了 a1 作为开头的),故第二个和式统计所有非开头的 1 的个数。
每一个开头就能对应一个连续段,于是答案就出来了。
随便用个数据结构维护就行了,平衡树树状数组线段树随便写。
代码:
1 | #include <cstdio> |
Related Issues not found
Please contact @Alpha1022 to initialize the comment