排序之离散化

#include<iostream>
#include<algorithm>
#include<cstring>
#include<cstdio>
#include<vector> 
const int maxn =10000;
using namespace std;
int s[maxn];
int n;
vector<int>v;
int query(int x)
{
    return lower_bound(v.begin(),v.end(),x) - v.begin() +1; 
}
int main()
{
    cin>>n;
    for(int i=1;i<=n;++i)
    {
        cin>>s[i];
        v.push_back(s[i]);
    }
    stable_sort(v.begin(),v.end());
    v.erase(unique(v.begin(),v.end()),v.end());
    for(int i=0;i<v.size();i++)
        cout<<v[i]<<' ';
    puts("");
    for(int i=1;i<=n;++i)
    {
        cout<<query(s[i])<<' ';
    }
    return 0;
}

 例题:Cinema

题意翻译

莫斯科在举办一场重要的有n 个不同国家的珂学家参与的国际会议,每个珂学家都只会一种语言。为了方便起见,我们规定一种语言用110^9 的数来描述。 在会议之后的晚上,珂学家们决定去看电影。他们去的电影院有m场电影,每场有两个不同的数字,分别代表配音的语言和字幕的语言。如果一个珂学家能听懂配音,他会非常愉悦;如果能看懂字幕,他会比较满意。如果既看不懂也听不懂,他会很生气。 珂学家们决定去看同一场电影,你必须帮助他们选择一场电影,让愉悦的人最多的前提下,比较满意的人最多。 输入格式: 第一行一个整数n(1n200000) 表示珂学家个数。 第二行n个整数a1, a2, ..., an(1ai109) 表示珂学家们会的语言。 第三行一个整数 m 1m200000 表示电影的场数。 第四行m个整数b1, b2, ..., bn(1bj109) 表示电影的配音用的语言。 第五行m 个整数

转载于:https://www.cnblogs.com/719666a/p/10162608.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值