CodeForces 864D Make a Permutation!
来源:互联网 发布:我思考所以我存在知乎 编辑:程序博客网 时间:2024/06/14 09:05
题目链接:http://codeforces.com/contest/864/problem/D
题意:给你一个长度为n的数组,问你要替换几个数字,才能使得这个数组变为全排列,并且在改动最小的情况下,字典序最小的全排列
解析:首先,因为保证了,一定在1~n里面,所以重复的数字肯定是要被替换掉的,记录一下,然后替换也是有要求的,肯定是先把小的放上去,反正就这样乱搞一下就可以了
#include <bits/stdc++.h>using namespace std;const int maxn = 2e5+100;int vis[maxn];int a[maxn];int used[maxn];queue<int>q;int main(void){ int n; scanf("%d",&n); for(int i=0;i<n;i++) { scanf("%d",&a[i]); vis[a[i]]++; } for(int i=1;i<=n;i++) { if(vis[i]==0) q.push(i); } printf("%d\n",q.size()); for(int i=0;i<n;i++) { if(i)printf(" "); if(vis[a[i]]>1) { if(used[a[i]]==1||a[i]>q.front()) { vis[a[i]]--; printf("%d",q.front()); q.pop(); } else { used[a[i]] = 1; printf("%d",a[i]); } } else printf("%d",a[i]); } puts(""); return 0;}
阅读全文
0 0
- Codeforces 864D Make a Permutation!
- CodeForces 864D Make a Permutation!
- Codeforces 864 D Make a Permutation!
- Codeforces Round #436 (Div. 2)D. Make a Permutation! codeforces-864D. Make a Permutation!
- CodeForces 864D Make a Permutation! 【贪心】【模拟】
- Codeforces Round #436 (Div. 2) 864D.Make a Permutation!
- Codeforces 864D D. Make a Permutation!【思维+线段树+二分+这是一个煞笔做法】
- D. Make a Permutation! (Codeforces Round #436 (Div. 2))
- Codeforces Round #436 (Div. 2) D. Make a Permutation!
- Codeforces Round #436 (Div. 2)-贪心-D. Make a Permutation!
- Codeforces Round #436 (Div. 2) D. Make a Permutation!
- Codeforces Round #436 (Div. 2) D. Make a Permutation!
- Codeforces Round #436 D.Make a Permutation!(贪心)
- Codeforces Round #436 (Div. 2) D. Make a Permutation!(优先队列)
- Codeforces Round #436 (Div. 2) D. Make a Permutation! 思维+贪心
- Codeforces Round #436 (Div. 2) A.Fair Game B.Polycarp and Letters C. Bus D.Make a Permutation!
- Codeforces Round #436 (Div. 2) Make a Permutation!
- Codeforces Round #436 (Div. 2) Make a Permutation!
- 解决表单(Form)重置reset is not a function脚本出错
- 每日积累(20171013-day-28)(编译matlab 读写 exr格式图片插件)
- 迷迷糊糊的合唱队列
- 深入解析Java中的equals()和hashCode()方法
- 6-3 链表逆置(20 分)
- CodeForces 864D Make a Permutation!
- 笔试坑点
- LightOJ
- 从开始到现在做过的项目记录之前端开发(图)
- 八人过河 程序 C++
- html-5
- 2017秋招C++面经
- 第六周LeetCode算法题两道
- jQuery 取值、赋值的基本方法整理