码迷,mamicode.com
首页 > 其他好文 > 详细

离散化处理

时间:2017-04-04 10:44:49      阅读:471      评论:0      收藏:0      [点我收藏+]

标签:for   原创   int   提示   数据   离散化   class   god   ade   


离散化处理

题目描述:

在程序设计过程中,经常要用到离散化处理,将原始数据排序,使用排序后的编号(rank值)作为新的关键字进行操作。排序时相同的值只保留一个,也就是说所有键值相同的数离散化处理后对应同一个编号。

输入格式:

第1行:一个整数N。
第2行:有N个整数,每个数在10^9以内。

输出格式:

依次输出每个数的rank编号。

样例输入:

4
28 5 6 5

样例输出:

3 1 2 1

提示:

1<=N<=10000。

注意:可能有相同整数。

时间限制:1000ms
空间限制:128MB


来源:原创


#include<cstdio> #include<iostream> #include<algorithm> using namespace std; int n,a[1000000],b[1000000],m; int main() { cin>>n; for(int i=0;i<n;i++) cin>>a[i],b[i]=a[i]; sort(a,a+n); m=unique(a,a+n)-a; for(int i=0;i<n;i++) cout<<lower_bound(a,a+m,b[i])-a+1<<" "; cout<<endl; return 0; }

by bigod ljc

离散化处理

标签:for   原创   int   提示   数据   离散化   class   god   ade   

原文地址:http://www.cnblogs.com/A1269180380/p/6664341.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!