因为我之前写离散化总是用一些奇怪的方法导致效率较低,所以特此写一篇博客来保存一个正经的模板
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int main()
{
int n;
scanf("%d",&n);
for(int i=1;i<=n;i++)
scanf("%d",&a[i]),b[i]=a[i];
sort(b+1,b+n+1);
int tot=(int)(unique(b+1,b+n+1)-(b+1));
for(int i=1;i<=n;i++)
{
a[i]=(int)(lower_bound(b+1,b+r+1,a[i])-b);
}
return 0;
}