随笔分类 - 高效算法思想--离散化
摘要:$n \leq 100000$个矩形,一个一个覆盖在坐标系上,每个颜色都不一样,问最后能看到几种颜色。 由于后面的颜色可以覆盖前面的颜色,可以把颜色与时间联系上,第$i$个矩形颜色$i$来把时间维变成Max,接下来就是二维操作。 把矩形差分后按$x$排序可以得到一个y轴上的区间操作:区间加上或删除某
阅读全文
摘要:n<=40000个数,在线问m<=50000次区间众数,数字Ai<=1e9。 重要结论:$mode(a \cup b)\epsilon mode(a) \cup b$,显然。 用分块做,对区间[L,R]取众数,就先对他们跨过的块O(1)取答案--预处理A(i,j)表示块i到块j的众数即可,然后对两边
阅读全文
摘要:n<=10000的序列做m<=10000个操作:单点修改,查区间第k小。 所谓的主席树也就是一个值域线段树嘛。。不过在这里还是%%fotile 需要做一个区间查询,由于查第k小,需要一些能够支持数值操作的东西,那就选择值域线段树,线段树上每个区间[L,R]表示的是值在L~R的数的相关信息,比如这里的
阅读全文
摘要:n<=100000个山,每个山有高度,从一个山到另一个山代价为高度差,有A和B两人一起开车,A每次选前进方向的次近山,B选最近,保证山高度不同且如果代价相同的山低的代价算小,每次旅行先A走,然后B,然后AB轮流开车,旅行如果下一次找不到目的地或者下一次到目的地时总代价超过了指定的X,他们就会停下。现
阅读全文
摘要:n<=3e5的数列,m<=3e5个操作:把第x个数修改成y,或询问从x到y这个区间能否构成公差z的等差数列。 二逼做法:考虑一个序列在什么情况下才能构成公差z的等差数列。 首先,最大值和最小值的差是z*(y-x)。 其次,相邻两数的差的gcd是z。 再者,没有重复的数字。 前两个比较好搞,线段树,第
阅读全文
摘要:h<=10000 * w<=10000的矩阵,每个格填不超过m<=10000的数,外加n<=10的限制,描述n个子矩阵中最大值一定要是多少,求方案数。 首先一块地能填的数就是1~这块地经过多重矩形覆盖后的最小值,然后要排除那些规定矩形填不到最大值的情况,所以答案为:每块地都满足<=该块地被限制矩形覆
阅读全文
摘要:给出平面上n<=100个点,求最少用多少面积≤S<=200000的矩形能全覆盖。 第一想法是区间DP,f[i,j]表示覆盖第i到j的点最少矩形数,$f[i,j]=∑f[i,x]+f[x+1,j],x∈[i,j)$,但好在样例良心,这样的方案过不了样例。怎么把两个矩形相交的方案处理出来呢? f[i,j
阅读全文
摘要:n个数字中,每个数有数字A和属性B,每次操作将某个点x的属性B改变为0或1,求满足这样要求的子序列的个数: 下标a<b<c<d<e,而Aa<=Ab=Ac=Ad>=Ae且Bb=Bc=Bd=1。 区间操作,首推线段树!(然后就不会了,跑去看别人的代码) 是这样的,重点在于中间那三个点,因为我们的修改操作
阅读全文

浙公网安备 33010602011771号