摘要:
题面。 做这道题的时候我在练分块,实际上做的都是些有点水的题。结果一下子看到这道题。 这什么玩意?稍微镇定一下,想了想。大的暴力,小的写数据结构维护? 然后过了,我现在甚至一时半会想不起来怎么做的了。 做法 对于池子的x。 对于x<=n1/2,直接暴力建池子pool[ i ][ j ],表示对于池子 阅读全文
摘要:
题面。 我也想过根号分治,但是题目刷得少,数组不敢开,所以还是看题解做的。 这道题目要用到根号分治的思想,可以看看这道题目和我的题解。 题目要求处理一个数组a,支持如下操作。 对一个整数x,对数组长度范围内所有位置( y + x * i )加上一个数,y <= x。 查询区间和 数据范围1e5,使用 阅读全文
摘要:
题面。 看到这道题,我第一反应就是莫队。 我甚至也猜出了把所有询问的三个区间压到一起处理然后分别计算对应询问答案。 但是,这么复杂的贡献用什么东西存?难道要开一个数组 query_appear_time[ 100000 ][ 100000 ]? 于是我打消了这个念头,最后还是看题解做的。 简化题意: 阅读全文
摘要:
题面。 之前做过一道很类似的题目 洛谷P4168蒲公英 ,然后看到这题很快就想到了解法,做完这题可以对比一下,真的很像。 题目要求区间内出现次数为正偶数的数字的数量。 数据范围1e5,可以分块。 我们预处理出这么两个数组。 一个是某个数字出现次数的分块前缀和,这个很简单。 一个是sum[ i ][ 阅读全文
摘要:
题面。 许久以前我还不怎么去机房的时候,一位大佬好像一直在做这道题,他称这道题目为“大分块”。 其实这道题目的思想不只可以用于处理区间众数,还可以处理很多区间数值相关问题。 让我们在线处理区间众数。 数据范围1e5,考虑分块。 先对蒲公英种类离散化。 预处理 预处理出两个数组。 一个数组sum[ i 阅读全文
摘要:
一般情况下,程序运行消耗时间主要与时间复杂度有关,超时与否取决于算法是否正确。 但对于某些题目,时间复杂度正确的程序也无法通过,这时我们就需要卡常数,即通过优化一些操作的常数因子减少时间消耗。 比如这道题 P5309 [Ynoi2011] 初始化 。 这道题目的做法我写在另一篇博客里,这里主要研究卡 阅读全文