题目地址:
先写了一发莫队,莫队能够水过。非常easy的莫队,不多说。
代码例如以下:
#include #include #include #include #include #include #include
然后又看了解题报告,发现线段树+离线查询也能够过。并且感觉非常奇妙的做法。。
首先先离线保存下来。然后从左向右维护,维护的是前面的值对于当前枚举值的相对个数。对于当前第i个数来说,先将这个数的值更新为1。代表一个独立的串,然后找a[i]-1和a[i]+1前面存在不存在,假设存在的话,则说明前面的这两个数已经不能作为独立的串了。相对于a[i]来说,能够共存在a[i]的串中,所以就要将a[i]-1和a[i]+1分别-1.然后再在r值为i的询问中,直接线段树求和就能够了。代码例如以下:
#include #include #include #include #include #include #include