离散化板子

#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
vector<int> a,b;
int li(int x){
    return (int)(lower_bound(b.begin(),b.end(),x)-b.begin()+1);
}
int main(){
    int n;
    cin>>n;
    for(int i=1;i<=n;i++){
        int x;
        cin>>x;
        a.push_back(x);
        b.push_back(x);
    }
    sort(b.begin(),b.end());
    b.erase(unique(b.begin(),b.end()),b.end());
    for(int i=0;i<a.size();i++){
        a[i]=li(a[i]);
    }
}

直接上板子。

unique的作用是去重,并且返回去除重复元素序列后的第一个元素,详情请见百度百科

l

猜你喜欢

转载自blog.csdn.net/xizi_ghq/article/details/87983877