线段树
GoLakerswxy
这个作者很懒,什么都没留下…
展开
-
CodeForces - 834D(线段树优化dp)
给你长度为N的一个序列,让你将其分成连续的k段,每段的价值为其中数字种类的个数,求最大价值总和。 首先能想到n^2复杂度的dp设定dp[i][j]表示到位子i,分成j段的最大价值总和。dp[i][j]=max( dp[i][j],dp[k][j-1]+val(k+1,i) );k为这个数上一次出现的位置可以用线段树加速转移。考虑val(k+1,j).我们遍历到第j个位子...原创 2018-06-21 17:45:21 · 529 阅读 · 0 评论 -
HDU - 5091 Beam Cannon(线段树+几何)
题目:拿一个w*h的矩形(不能旋转),能覆盖平面上最多多少点,边缘经过算覆盖。线段树维护y坐标,表示以这个点为最上边的点,选这个点往下h高度的矩形能覆盖的点数。由x轴从左到右间隔w遍历,每遍历一个x就更新x上的yi,yi这个点只会给(yi,yi+h)这个区间影响,所以只需要更新区间(yi,yi+h);区间更新单点查询#include<bits/stdc++.h>usi...原创 2018-07-17 10:19:00 · 210 阅读 · 0 评论 -
51nod 1981 如何愉快地与STL玩耍(线段树+bitset)
题目:给n(n<=65536)个初始为空的集合set从1....n编号,m(m<=65536)次操作(op,x,y,k)op==1表示把k(k<=1e4)这个数插入到x到y之间的所有集合中;op==2表示查询 x 到 y 区间所有集合中的数字放在一个集合中去重后第k小的元素。思路:线段树,用bitset压位,线段树 lazy 永久化标记,查询完后二分结果,输入挂+输出挂,交题...原创 2018-08-10 15:45:37 · 262 阅读 · 0 评论