poj2528(贴海报)线段树离散化

//poj2528贴海报(线段树离散化)
#include
#include
#include
#include
using namespace std;

const int maxn=100005; //要开10倍的数组,否则RE
bool hash[maxn];
int li[maxn],ri[maxn];
int cov[maxn<<4];
int a[maxn*3];
int cnt;

int BinSea(int key,int n) //二分查找所在的编号即离散后的位置号
{
    int l=0,r=n-1;
    while(l<=r){
        int mid=(l+r)/2;
        if(a[mid]==key) return mid;
        else if(a[mid]=r){
        cov[p]=c;
        return;
    }
    Pushdown(p);
    int mid=(l+r)/2;
    if(x<=mid) Update(p<<1,l,mid,x,y,c);
    if(y>mid) Update(p<<1|1,mid+1,r,x,y,c);

}

void  Query(int p,int l,int r) //遍历每个区间的颜色
{
    if(cov[p]!=-1){
        if(!hash[cov[p]]){
            //cout<0;i--) //距离大于1的点之间加一个数
        {
            if((a[i]-a[i-1])>1) a[h++]=a[i-1]+1;
        }
        sort(a,a+h);
        memset(cov,-1,sizeof(cov));
        for(int i=0;i

你可能感兴趣的:(线段树)