这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
2020-2021:teams:manespace:莫队 [2020/05/09 20:50] iuiou [简介] |
2020-2021:teams:manespace:莫队 [2020/05/10 21:24] (当前版本) iuiou |
||
---|---|---|---|
行 25: | 行 25: | ||
**优化1**:对于每个区间从区间头开始扫,与到没遇见的ans++,标记一下,然后继续往下扫到查询区间结束。这样我们成功把复杂度降低到了O(nm) | **优化1**:对于每个区间从区间头开始扫,与到没遇见的ans++,标记一下,然后继续往下扫到查询区间结束。这样我们成功把复杂度降低到了O(nm) | ||
- | **优化2**:还是开一个cnt数组,用两个指针i,j在数列上移动,来缩减目标范围,遇到一个数j,如果cnt[j]为0,则ans++,当要缩减区间范围时若cnt[j]正好为1,则ans--,由于每次接着上次操作的结果,只要对cnt数组进行操作。复杂度的到一定的优化,然而,对于查询区间为[1,n][1,n-1][1,n-2]……这样和重新扫没区别,复杂度依旧还是O(nm),一样爆炸…… | + | **优化2**:还是开一个cnt数组,用两个指针i,j在数列上移动,来缩减目标范围,遇到一个数j,如果cnt[j]为0,则ans++,当要缩减区间范围时若cnt[j]正好为1,则ans--,由于每次接着上次操作的结果,只要对cnt数组进行操作。复杂度的到一定的优化,然而,对于查询区间为[1,n][1,2][3,n]……这样和重新扫没区别,复杂度依旧还是O(nm),一样爆炸…… |
简要放个代码描述一下处理过程 | 简要放个代码描述一下处理过程 | ||
行 122: | 行 122: | ||
</code> | </code> | ||
+ | 最后挂一个巨佬写的莫队博客,很清楚,可以参考[[https://www.cnblogs.com/WAMonster/p/10118934.html]] | ||