随笔分类 -  分块

摘要:如果没有内存限制,显然树状数组就可以了。 有了内存限制,我们使用分块。 因为没有修改操作,所以可以每16个数分一个块。 时间复杂度O(16*n) 注意不要用using namespace std,会占用1M不到的内存 代码: 1 #include<cstdio> 2 #include<cstring 阅读全文
posted @ 2017-04-19 09:14 gjghfd 阅读(174) 评论(0) 推荐(0)
摘要:将序列分块。 令f[i][j]表示第i块到第j块的答案,可以O(n*sqrt(n))统计出来。 令sum[i][j]表示前i块值为j的数出现了几次。每次询问暴力统计零散的数对答案的贡献就可以了。 具体见代码 代码: 1 #include<iostream> 2 #include<cstdio> 3 阅读全文
posted @ 2017-03-18 08:39 gjghfd 阅读(139) 评论(0) 推荐(0)