Codeforces Round #436 D.Make a Permutation!(贪心)
来源:互联网 发布:php源码 鲶鱼 编辑:程序博客网 时间:2024/05/18 03:02
题目链接:Make a Permutation!
#include <iostream>#include <cstdio>#include <fstream>#include <algorithm>#include <cmath>#include <deque>#include <vector>#include <queue>#include <string>#include <cstring>#include <map>#include <stack>#include <set>#define Max(a,b) a>b?a:b#define Min(a,b) a>b?b:a#define mem(a,b) memset(a,b,sizeof(a))using namespace std;typedef long long ll;int dir[4][2]= {{1,0},{-1,0},{0,1},{0,-1}};const double eps = 1e-6;const double Pi = acos(-1.0);const int INF=0x3f3f3f3f;const int maxn = 2e5+10;int num[maxn],arr[maxn],flag[maxn];int kind[maxn],cnt;int main(){ int n,x; while(scanf("%d",&n) != EOF){ mem(num,0); mem(flag,0); for(int i = 0; i < n; i++){ scanf("%d",&x); arr[i] = x; num[x]++; } cnt = 0; for(int i = 1; i <= n; i++){ if(!num[i]) kind[cnt++] = i; } printf("%d\n",cnt); cnt = 0; for(int i = 0; i < n; i++){ if(num[arr[i]] != 1){ if(kind[cnt] < arr[i] || flag[arr[i]]){ num[arr[i]]--; arr[i] = kind[cnt]; cnt++; }else{ flag[arr[i]] = 1; } } } printf("%d",arr[0]); for(int i = 1; i < n; i++){ printf(" %d",arr[i]); } printf("\n"); } return 0;}
阅读全文
0 0
- 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-864D. Make a Permutation!
- Codeforces Round #436 (Div. 2) 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) 864D.Make a Permutation!
- Codeforces Round #436 (Div. 2) D. Make a Permutation!
- Codeforces Round #436 (Div. 2) D. Make a Permutation!
- CodeForces 864D Make a Permutation! 【贪心】【模拟】
- Codeforces Round #436 (Div. 2) D. Make a Permutation!(优先队列)
- Codeforces Make a Permutation! (贪心+思路)详解
- Codeforces Round #436 (Div. 2) Make a Permutation!
- Codeforces Round #436 (Div. 2) Make a Permutation!
- Codeforces Round #436 (Div. 2) A.Fair Game B.Polycarp and Letters C. Bus D.Make a Permutation!
- Codeforces 864D Make a Permutation!
- CodeForces 864D Make a Permutation!
- Codeforces 864 D Make a Permutation!
- 在屏幕上输出星号组成的菱形图案。
- 【OpenJudge 9278】旅行
- RSA 加密算法备忘
- 时间格式化
- POJ1182-食物链(经典并查集)
- Codeforces Round #436 D.Make a Permutation!(贪心)
- Vmware EXSI6.0 vSphere 创建共享存储
- 相对湿度计算
- jdk环境配置
- 处理分布式事务一致性的方法
- 练习二:体验Selenium
- 用Nginx来作为媒介在手机查看电脑的html网页效果
- 面向对象程序设计上机练习五(类和对象)
- python里使用正则表达式的转义字符的匹配