首页 > 代码库 > HDU4866 Shooting (可持久化线段树)

HDU4866 Shooting (可持久化线段树)

题意:

给你一些平行于x轴的线段,每次询问坐标x上方的的前k个线段的高度和。题目是强制要求在线的。

思路:

首先要会可持久化线段树(又称主席树和函数式线段树),不会的可以去做下POJ 2104。

把所有线段高度离散化,作为结点建线段树。建两颗主席树,一颗是把线段的左端点的高度插入主席树,一颗是把线段的右端点的高度插入主席树,然后询问坐标x的时候,实际要询问的就是第一颗主席树减去第二颗主席树后的树的前k大高度和,不懂的可以自己在纸上画画每颗树表示的是什么然后就会就懂了。


<script src="https://code.csdn.net/snippets/433829.js" type="text/javascript"></script>