随笔分类 - 数据结构--分块
摘要:"传送门" 解题思路 首先求出前缀异或和,那么问题就转化成了区间内选两个数使得其异或和最大。数据范围不是很大考虑分块,设$f[x][i]$表示第$x$块开头到$i$这个位置与$a[i]$异或得到的最大的数,而对$f$求前缀$max$就可以得出每一块的开头到后面任意一点的区间内异或最大。而求$f$的过
阅读全文
摘要:"传送门" 解题思路 首先分块预处理,设$sum[i][j]$为第$i$块到第$j$块的逆序对数量,$g[i][j]$表示前$i$块数值$ include include include include using namespace std; const int N=50005; const in
阅读全文
摘要:"传送门" 解题思路 首先直接莫队是能被卡的,时间复杂度不对。就考虑按照值域先进行分块再进行莫队,然后统计答案的时候就暴力扫所有的块,直到一个块内元素不满,再暴力扫这个块就行了,时间复杂度O(msqrt(n)) 代码 cpp include include include include inclu
阅读全文
摘要:题面 Time Limit: 50 Sec Memory Limit: 128 MB Submit: 3596 Solved: 1070 [Submit][Status][Discuss] Description 神犇SJY虐完HEOI之后给傻×LYD出了一题:SHY是T国的公主,平时的一大爱好是作
阅读全文
摘要:题面 Description 给定一个长度为N的数组A[],求有多少对i, j, k(1 include include include include include using namespace std; const int MAXN = 100005; const double Pi = a
阅读全文
摘要:传送门 解题思路 树上的分块题,,对于修改操作,每次修改只会对他父亲到根这条链上的元素有影响;对于查询操作,每次查询[l,r]内所有元素的子树,所以就考虑dfn序,进标记一次,出标记一次,然后子树就是进与出之间的所有元素。分块后预处理出每个点修改对当前块多少个元素的影响f[i][j],再预处理出每个
阅读全文
摘要:传送门解题思路分块码农题,设分成T块,cnt[i][j][k]表示第i块到第j块,k出现的次数,需要离散化。all[i][j] 表示第i块到第j块的众数。然后这两个数组先预处理出来。然后询问的时候先将答案设成区间大块的众数,然后剩余部分暴力往cnt里加来更新...
阅读全文
摘要:Time Limit: 10 Sec Memory Limit: 259 MB Submit: 14183 Solved: 7190 [Submit][Status][Discuss] Description某天,Lostmonkey发明了一种超级弹力装...
阅读全文
摘要:Time Limit: 80 Sec Memory Limit: 512 MB Submit: 1628 Solved: 505 [Submit][Status][Discuss] Description IOI国历史研究的第一人——JOI教授,最近获得了一份被认为是古代IOI国的住民写下的日记。J
阅读全文
摘要:题面解题思路区间开方,求和。分块,注意如果区间都是1要特判,否则会T代码#includeusing namespace std;const int MAXN = 50005;inline int rd(){ int x=0,f=1;char ch=ge...
阅读全文
摘要:题目题解区间修改,询问区间小于c的个数。分块排序,用vector。至于那个块的大小,好像要用到均值不等式我不太会。。。就开始一个个试,发现siz=sqrt(n)/4时最快!!!明天去学一下算分块复杂度的方法。代码#include#include#includ...
阅读全文

浙公网安备 33010602011771号