![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
树状数组
ylsoi
这个作者很懒,什么都没留下…
展开
-
[loj6468]魔法——离线询问+树状数组
题目大意: 有一个长度为nnn的序列,每一个位置有一种颜色,颜色编号为1-n。 给定q个询问,求在p点的人如果要收集[l,r]种颜色的最小代价为多少? 收集i位置的颜色的代价为abs(p-i)。 思路: 考虑每一种颜色对于每一个位置需要收集它的人的贡献。 如果这种颜色出现了多次,对于紧接着出现的两个位置i,j,如果人在[i,mid(i,j)]的话,显然收集i位置会比较好,反之则收集j位...原创 2018-08-17 20:18:18 · 206 阅读 · 0 评论 -
[hdu5869]Different GCD Subarray Query——gcd+树状数组+数颜色
题目大意: 给定一个序列,每一次询问[l,r]所有的子区间内物品加减可以组成的最小价值的种类。 思路: 不难发现最小价值就是一个区间的gcd(可以想一下exgcd是怎么求的,就知道了)。 然后可以O(n2)O(n2)O(n^2)处理出来所有的区间的gcd,把一个区间gcd看成一种颜色,然后直接用树状数组数颜色。 但是n2n2n^2显然有问题,不难发现固定了右端点之后,可能不同的右端点...原创 2018-08-27 16:50:26 · 131 阅读 · 0 评论 -
[bzoj2639]矩形计算——二维莫队or四维数点
题目大意: 输入一个n*m的矩阵,矩阵的每一个元素都是一个整数,然后有q个询问,每次询问一个子矩阵的权值。矩阵的权值是这样定义的,对于一个整数x,如果它在该矩阵中出现了p次,那么它给该矩阵的权值就贡献p2p^2p2。 思路: 二维莫队的模板题,但是复杂度好像不太明确。。。 于是可以换一种思路,考虑平方的几何意义,即两个颜色相同的点可以构成一个点对,每一次询问在某矩阵中出现的点对个数。 对于每一个矩...原创 2018-10-09 19:33:11 · 1103 阅读 · 0 评论 -
[bzoj2434][Noi2011]阿狸的打字机——AC自动机
题目大意: 给定n个字符串,每次询问第x个字符串在第y个字符串中出现了多少次。 思路: 显然我们需要先把AC自动机给建出来。 考虑如何最暴力地计算第x个字符在第y个字符中出现了多少次,我们可以在Trie上暴力跳y的每一个节点,然后对于y的每一个节点跳fail,如果跳到了x串的结尾,那么答案+1。 这样对于每一个节点都跳fail显然复杂度无法接受,那么换一个角度考虑,x的结尾可以被y串上的多少个节点...原创 2018-12-26 21:52:55 · 120 阅读 · 0 评论 -
[HNOI2015]接水果——整体二分
题目大意: 给定一颗树和m条带有权值的路径以及q个路径询问,每次求m条路径中且为给出的路径的子路径的第k小。 思路: 首先考虑怎么判断一条路经是不是一条路径的子路径,假设这条路径在树上拐弯,那么包含它的路径的两个端点要分别在两个子树里面,如果这条路径在树上不拐弯,假设vvv是深度大的那个,uuu是深度小的那个,那么包含它的路径要有一个端点在vvv的子树内,另外一个端点在uuu连接vvv的那个儿子的...原创 2018-12-11 18:50:24 · 194 阅读 · 0 评论