离散化

a数组共n个数,去重剩m个

离散化:

void discrete()
{
    sort(a+1,a+n+1);
    for(int i=1;i<=n;i++)
        if(i==1||a[i]!=a[i-1])
            b[++m]=a[i];
}

查询x为1到m中哪一个:

int query(int x)
{
    return lower_bound(b+1,b+m+1,x)-b;
}
posted @ 2020-01-15 14:19  ChildeZhe  阅读(144)  评论(0)    收藏  举报