随笔分类 - 其它——莫队
摘要:无摘要..
阅读全文
摘要:莫队细节调到自闭...
阅读全文
摘要:"BZOJ" "洛谷" 删掉的数即三个区间数的并,想到bitset;查多个区间的数,想到莫队。 考虑bitset的每一位如何对应每个数的不同出现次数。只要离散化后不去重,每次记录time就可以了。 但是如果对所有询问开一个bitset会MLE。但是我们可以开M个bitset,每次处理M次询问。 注意
阅读全文
摘要:"题目链接" 这不就是个求区间众数的次数么,还不强制在线,值域分块与莫队都可做,用的莫队。 发现从区间减掉一个数,如果它是答案,好像很难处理? 但是答案要么不变要么就 1啊,记一下出现x次的有多少个数不就行了。 cpp //1630ms 6.86MB include include include
阅读全文
摘要:"题目链接 BZOJ" 当然哪都能交(都比在BZOJ交好),比如 "UOJ 58" cpp //67376kb 27280ms //树上莫队+带修改莫队 模板题 include include include include include // define gc() getchar() defi
阅读全文
摘要:"题目链接" 二维莫队,按x,y坐标一起分块.(x,y)的所属的块为 x/sq(n) sq(m) + y/sq(m) 排序时按照(左下点所在块,右上点的标号)排序 排序后 先得出一个询问的答案,然后利用上一个询问的矩形与当前矩形位置关系更新答案 转移真的麻烦。。为了避免算重 一定要加个vis[][]
阅读全文
摘要:"题目链接" 长度为n的数列,m次询问,每次询问一段区间最大的 (重要度 出现次数) 好像可以用莫队做,但是取max的操作普通莫队是不好撤销的(Subd部分) 于是可以用不带删除的莫队: 回滚莫队 询问依旧是按(左端点所在块,右
阅读全文
摘要:"题目链接" 大数除法是很麻烦的,考虑能不能将其条件化简 一段区间[l,r]|p,即num[l,r]|p,类似前缀,记后缀suf[i]表示[i,n]的这段区间代表的数字 于是有 suf[l] suf[r+1]|p (suf[l] suf[r+1])%p = 0 suf[l] ≡suf[r+1] (m
阅读全文
摘要:"题目链接" (同上一题苹果树) 为什么第10个点T了一晚上。。 下面那个却AC了?跑的也不慢。 TLE: cpp / 在DFS序做莫队 当一个点不是另一个点的LCA时,需要加上它们LCA的贡献 / include include include include define gc() getcha
阅读全文
摘要:"题面链接" cpp / 代码正确性不保证。。(不过交了SPOJ没WA T了最后一个点) 在DFS序做莫队 当一个点不是另一个点的LCA时,需要加上它们LCA的贡献 / include include include include define gc() getchar() const int N
阅读全文
摘要:"题目链接" 带修改莫队: 普通莫队的扩展,依旧从[l,r,t]怎么转移到[l+1,r,t],[l,r+1,t],[l,r,t+1]去考虑 对于当前所在的区间维护一个vis[l~r]=1,在修改值时根据是否在当前区间内修改即可。 块大小取,排序依次按左端点所在
阅读全文
摘要:"题目链接" cpp / 数列的最大值保证 include include include using namespace std; const int N=5e4+5; int n,m,k,size,A[N],times[N]; long long ans[N],now; struct Ques
阅读全文
摘要:"题目链接 COGS" "BZOJ2120" "洛谷P1903" cpp / Add和Subd函数中的vis不能直接设为=1或=0 比如 l=1,r=0 l=3,r=5 时,[1,5]的vis标记全都是1 所以要进行取反 / include include include include using
阅读全文
摘要:题目链接: "COGS" 、 "BZOJ3236" Upd: 树状数组实现的是单点加 区间求和,采用值域分块可以修改查询。同 "BZOJ3809" . 莫队为次修改和次查询。 注意这两个需求并不平衡,所以在搭配数据结构时常使用分
阅读全文
摘要:"题目链接" cpp / 25832 kb 26964 ms 莫队+树状数组:增加/删除/查询 都是O(logn)的,总时间复杂度O(m sqrt(n) logn),卡不过 莫队+分块:这样查询虽然变成了sqrt(n),但是修改是O(1)的 考虑对权值进行分块 细节... / include inc
阅读全文
摘要:1.COGS.2039. 树的统计 思路: 各种方法。 代码: 1.遍历树1 时间 0.314 s 平均内存 2.96 MB 1 #include<cstdio> 2 using namespace std; 3 const int N=100005; 4 5 int n,Enum,cnt,H[N<
阅读全文