随笔分类 -  莫队

摘要:题链 多次询问一个区间内最小没有出现过的自然数 回滚莫队:发现添加一个数难以维护,故只用删除操作来维护答案。用cnt[]来计数,一开始把[1,n]全部塞进去,记录全局答案ANS,只有新的询问所属的块与上次询问不同时更新ANS(因为该询问前面的块已经没有用了); 什么时候更新答案ans呢?一开始ans 阅读全文
posted @ 2021-05-11 11:53 棉被sunlie 阅读(88) 评论(0) 推荐(0)
摘要:题链 1.普通莫队:维护两个数组v[i]与cnt[i],v[i]表示i出现次数,cnt[i]表示出现i次的数有多少个; 对于新加入的数很好更新,ans = max(ans,v[x]),对于删除的数x,若这个的数被删之前v[x] = 1了,删完后就没了,并且出现ans次的数的个数cnt[ans] = 阅读全文
posted @ 2021-05-10 15:25 棉被sunlie 阅读(59) 评论(0) 推荐(0)
摘要:题链 题意询问区间最大价值,最大价值指区间中 a[i]出现次数*a[i] 的最大值; 莫队解决:发现新增一个数字很好维护最大值(计数就行),但是删除一个数字困难,所以用到回滚莫队 这篇博客看的通俗易懂,代码也是~ 回滚莫队 //#include <bits/stdc++.h> #include <i 阅读全文
posted @ 2021-05-10 14:19 棉被sunlie 阅读(70) 评论(0) 推荐(0)
摘要:题链 1、 Q L R代表询问你从第L支画笔到第R支画笔中共有几种不同颜色的画笔。 2、 R P Col 把第P支画笔替换为颜色Col。 带修改莫队; 学玩普通莫队再看带修改莫队,OI-wiki上讲的通俗易懂; 对比主要是这几点: 1.分块unit = pow(n,2.0/3.0); 2.对询问排序 阅读全文
posted @ 2021-05-07 20:38 棉被sunlie 阅读(59) 评论(0) 推荐(0)
摘要:题链 给你一个长度为n的序列,有m次查询操作,每次查询[L,R]区间的友好对的个数。 友好对的定义:满足i<j,且|ai-aj|<=K。 考虑每添加一个元素,计算该元素范围内[x-k,x+k]有多少个数(对树状数组来一发询问即可 query(r) - query(l-1) ),加上该贡献; 离散所给 阅读全文
posted @ 2021-05-06 14:16 棉被sunlie 阅读(74) 评论(0) 推荐(0)