分块
yashem66
长期提供绕地人造卫星清洗除尘服务。
展开
-
冲刺NOI2017 (24) A (后缀数组 回滚莫队)
题目大意给出一个长度为nn的字符串ss,提出qq个询问,对于每个询问要求回答:右端点在区间[l,r][l,r]的所有前缀,最长公共后缀最长的一对前缀的最长公共后缀的长度是多少。题解因为要在原串的前缀上分析后缀十分的别扭,所以对这个问题略作转化:将原串翻转过来,求左端点在区间[l,r][l,r]内的后缀的lcp(最长公共前缀)。同时不要忘记把询问也翻转到同样的姿势。问题已经转化为了:左端点在区间[l,原创 2017-06-22 23:04:09 · 653 阅读 · 0 评论 -
BZOJ4241 历史研究 (分块 回滚莫队-教程向)
题目大意给定一个长度为nn的序列,并提出qq个询问,每次询问要求回答区间 [l,r][l,r] 内所有的权值与其出现次数的积的最大值。题解看见这种xjb询问的题当然是要下意识地用分块来搞一搞的,又因为只有询问,且题目没有要求强制在线,所以就可以理所应当地“分块+莫队”来搞这道题了。对于这道题,莫队的加入操作是很好实现的,只要增加一下被加入区间的权值的出现次数并同时更新一下答案就可以了,但是删除操作却原创 2017-06-20 23:01:45 · 1790 阅读 · 2 评论 -
Codeforces 785E 题解(树套树-树状数组套线段树)
题目大意:对于一个长度为n的序列进行k次操作,每次操作都是交换序列中的某两个数。对于每一个操作,回答当前序列中有多少个逆序对。题解:每次更改序列都可以理解为,将答案减去被调换的位置原有数字的对答案的贡献,然后调换两数字的位置,然后将答案加上被调换的位置在调换之后的数字对答案的贡献。每一个数字对答案的贡献都可以理解为在其出现位置之前的比它大的数字的个数加上在其出现位置之后的比它小的数字的个数。由此,用原创 2017-03-16 19:50:29 · 611 阅读 · 0 评论 -
【HDU 6331】暑期多校day3 Walking Plan (分块 矩阵乘法 × Floyd)
题目大意给定一个 n 个点,m 条边的有向图,q 次询问 u 到 v 经过至少 k 条边的最短路。 (2≤n≤50,1≤m,k≤104,1≤q≤105)(2≤n≤50,1≤m,k≤104,1≤q≤105)(2 \leq n \leq 50 , \quad 1 \leq m,k \leq 10^4, \quad 1 \leq q \leq 10^5)解题思路注意题目中n的范围很小,...原创 2018-08-01 10:48:38 · 247 阅读 · 0 评论