嗯,线段树的操作。
点的增加,删除,和查询。有意思的是,增加和查询的是第K小项。O(∩_∩)O~ 写了好久,貌似发呆了一大半时间。
剩下的一大半时间,跑去踢球了。ORZ。ORZ。。我爱走神,偶也。
贴个,我是如何找到第k小元素的函数。[1,2)表示编号为1的小朋友。
int query(int num,int k)
{
if(k==tree[num].r-tree[num].l)
return tree[num].l+k-1;
if(k<=tree[num<<1].cov)
query(num<<1,k);
else
query((num<<1)|1,k-tree[num<<1].cov);
}
//这个是‘Q’的函数,cov表示l到r之间有几个小朋友。