摘要: 显然相当于使序列变成单峰。给原序列每个数按位置标号,则要求重排后的序列原标号的逆序对数最少。考虑将数从大到小放进新序列,那么贪心的考虑放在左边还是右边即可,因为更小的数一定会在其两侧,与它自身放在哪无关。对于相同的数,一定可以将其安排至之间无逆序对,特判一下。 阅读全文
posted @ 2018-10-22 23:26 Gloid 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 如果分块的话与区间众数没有本质区别。这里考虑莫队。 显然莫队时的删除可以用堆维护,但多了一个log不太跑得过。 有一种叫回滚莫队的trick,可以将问题变为只有加入操作。按莫队时分的块依次处理,一块中左端点的差不超过√n,右端点单调递增。首先将右端点也在该块中的询问暴力处理。然后令指针l在下一块开头 阅读全文
posted @ 2018-10-22 21:26 Gloid 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 如果要询问的某个纵坐标为inf的点左边是否有点能与其构成所要求的矩形,只要用个单调栈就可以了。可以想到用分治来制造单调性。 按横坐标排序,每次考虑跨过分治中心的矩形。考虑右边的每个点能与左边的哪些点构成矩形。首先这受到右边点的限制,对于每个点用set求出这个范围。然后对所有点按纵坐标从大到小排序,维 阅读全文
posted @ 2018-10-22 19:52 Gloid 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 前缀和后相当于查询三维空间某条直线,用两维坐标减去另一维就变成查询二维点了,map即可。 阅读全文
posted @ 2018-10-22 15:12 Gloid 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 事实上每次走到横坐标或纵坐标最接近的点一定可以取得最优方案。于是这样连边跑最短路就可以了。 阅读全文
posted @ 2018-10-22 01:04 Gloid 阅读(201) 评论(0) 推荐(0) 编辑