随笔分类 -  数据结构--分块

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