博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Codeforces Round #436 D. Make a Permutation!
阅读量:5846 次
发布时间:2019-06-18

本文共 826 字,大约阅读时间需要 2 分钟。

题意:给你n个数字,其中可能有相同的数字,要求你用其他的数字替换这些相同的数字,使得所得的序列字典序最小。

 

 

Examples

 

Input
4 3 2 2 3

 

Output
2 1 2 4 3

 

Input
6 4 5 6 3 2 1

 

Output
0 4 5 6 3 2 1

 

Input
10 6 8 4 6 7 1 6 3 4 5

 

Output

 

3 2 8 4 6 7 1 9 3 10 5 思路:暴力就好,那数组记录一下,注意:替换的时候要用比他小的换,如果选择了一个不换,那么后面的数就必须要换掉了。 代码: #include
#include
using namespace std; const int maxn=2e5+5; int num[maxn],a[maxn]; bool f[maxn]; //f标记数组,标记有没有出现没有换的情况 int main(){
    int n;     cin>>n;     memset(num,0,sizeof(num));     memset(f,0,sizeof(f));     memset(a,0,sizeof(a));     for(int i=0;i
>a[i];         num[a[i]]++;  //num记录每个数出现了几次     }     int cur=1,sum=0;  //cur表示用来替换的数     for(int i=0;i
1){
            while(num[cur])cur++; //要找一个没有出现的数来换             if(cur

 

转载于:https://www.cnblogs.com/ljy08163268/p/7634779.html

你可能感兴趣的文章
4.2. PHP crypt()
查看>>
Spring Cloud Config服务器
查看>>
commonservice-config配置服务搭建
查看>>
连接池的意义及阿里Druid
查看>>
ComponentOne 2019V1火热来袭!全面支持 Visual Studio 2019——亮点之WinForm篇
查看>>
Python递归函数与匿名函数
查看>>
loadrunner安装运行一步一步来(多图)
查看>>
git请求报错 401
查看>>
监控工具htop的安装及使用
查看>>
Nodejs使用图灵机器人获取笑话
查看>>
Spring 任务调度 简单的,使用Schedule
查看>>
SQL 2005删除作业计划出错(DELETE语句与 REFERENCE约束"FK_subplan_job_id"冲突。)的解决...
查看>>
【Touch&input 】支持多个游戏控制器(18)
查看>>
我的友情链接
查看>>
SQL语句学习
查看>>
What is Cluster Aware Updating in Windows Server 2012?
查看>>
进老男孩的自我介绍和决心书
查看>>
线上Linux服务器运维安全策略经验分享
查看>>
Android一些问题的解决方案
查看>>
ios之UIToolBar
查看>>