zoukankan      html  css  js  c++  java
  • 蒟蒻的离散化模板

      当数据很大,但是数并不多的时候,可能我们开不下那么大的数组,但是所求答案本身又与数本身的大小无关,只与数的相对大小有关,这时我们就可以把这些数相对大小不变的缩小,称之为离散化。我的离散化一直都是用的stl,sort+unique+lower_bound

    代码:

    void lisan()
    {
        sort(a+1,a+n+1);//排序是为了二分
        tot=unique(a+1,a+n+1)-a-1;//把数组中重复的元素放到最后面,并返回不重复元素的最后一个下标
        for(int i=1;i<=n;++i)
            b[i]=lower_bound(a+1,a+tot+1,b[i])-a;//a数组只是一个暂存的数组,现在的b数组才是保持着原来顺序的数组,因为a数组已经排过序了,
    //所以b在a中是第几个,他就是第几小的,他压缩之后的值就是这个,这样就可以保证数据的相对大小关系不被改变
    }
  • 相关阅读:
    入门系列4
    入门系列3
    入门系列2
    入门系列1
    sql进阶-筛选库表中数据为空的表
    sql进阶-删除所有的视图
    sql序列(2) sql语句功能表
    sql序列(5)事务
    sql序列(4)存储过程
    KVM虚拟化介绍
  • 原文地址:https://www.cnblogs.com/yuelian/p/12295731.html
Copyright © 2011-2022 走看看