分块
kma_093
山高水闊 苦海無涯
展开
-
[洛谷P4168] [Violet]蒲公英
写一篇博客纪念一下第一道AC的黑题~ 题目链接 蒲公英 题目分析 神仙分块……做完之后感觉分块比我理解的要深刻很多啊 思路参考洛咕第一篇题解,特别巧妙 首先预处理两个数组: \(s[i][j]\):前缀和,前\(i\)(含第\(i\)块)个块中\(j\)的出现次数 \(p[i][j]\):第\(i\)到\(j\)个块的最小众数 如何预处理: 这一段题解写得比较略……可能是我太弱...原创 2019-07-10 23:05:00 · 159 阅读 · 0 评论 -
[HNOI2010] 弾飞绵羊
题目链接: 传送门 题目分析: 题外话: 我即使是死了,钉在棺材里了,也要在墓里,用这腐朽的声带喊出: 根号算法牛逼!!! 显然,这是一道LCT裸题,然而在下并不会LCT于是采用了分块瞎搞 对于每个点维护两个信息:跳出块的步数\(step[i]\)和跳出块的落点\(lo[i]\) 预处理时使用类似模拟的方法。每次只处理还未处理过的点,并且对于每次处理顺带将向后跳到过的点也处理掉,具体见代码...原创 2019-05-04 14:34:00 · 61 阅读 · 0 评论 -
[BZOJ3211]花神游历各国
题目链接: 传送门 题目分析: 题意简化:给你一个元素非负的序列,要求支持区间开方,区间求和。 做法很多,洛谷的题解里线段树/树状数组/分块/...都有(基本就是数据结构的群魔乱舞),不过分块能跑过的话分块就好了。 记录区间\(i\)的元素总和为\(sum_i\),如果\(sum_i=R[i]-L[i]+1\)的话说明这个区间内只有1了,就不用再操作了,否则直接暴力开方即可。 由于数据范围...原创 2019-01-29 23:17:00 · 74 阅读 · 0 评论 -
[洛谷p2801]教主的魔法
题目链接: 传送门 题目分析: 很裸的分块题,最开始在原数组上排序WA掉了,还因此调了很久23333 (不过为什么这样一个全是bug的程序交上去会有90分啊 WOJ上甚至还能玄学A过) 大块打标记,小块暴力改,每次改了小块之后把小块所在的整个大块复制到另外一个数组里排序,询问时用二分找比C更大的第一个即可 代码: #include<bits/stdc++.h> #defin...原创 2019-01-22 13:20:00 · 68 阅读 · 0 评论