Codeforces 358 . B Alyona and Mex
来源:互联网 发布:higo出租软件 编辑:程序博客网 时间:2024/05/01 17:48
集训第一天,有段时间没有敲代码,被虐得体无完肤……
比完后仔细看看题解,哎……还是自己水平太水。不管怎么样,集训第一天,不管前路多么坎坷,以最大的决心和努力奋斗就好。
话不多说,上题:
Someone gave Alyona an array containing n positive integers a1, a2, ..., an. In one operation, Alyona can choose any element of the array and decrease it, i.e. replace with any positive integer that is smaller than the current one. Alyona can repeat this operation as many times as she wants. In particular, she may not apply any operation to the array at all.
Formally, after applying some operations Alyona will get an array of n positive integers b1, b2, ..., bn such that 1 ≤ bi ≤ ai for every1 ≤ i ≤ n. Your task is to determine the maximum possible value of mex of this array.
Mex of an array in this problem is the minimum positive integer that doesn't appear in this array. For example, mex of the array containing 1, 3 and 4 is equal to 2, while mex of the array containing 2, 3 and 2 is equal to 1.
The first line of the input contains a single integer n (1 ≤ n ≤ 100 000) — the number of elements in the Alyona's array.
The second line of the input contains n integers a1, a2, ..., an (1 ≤ ai ≤ 109) — the elements of the array.
Print one positive integer — the maximum possible value of mex of the array after Alyona applies some (possibly none) operations.
51 3 3 3 6
5
22 1
3
In the first sample case if one will decrease the second element value to 2 and the fifth element value to 4 then the mex value of resulting array 1 2 3 3 4 will be equal to 5.
To reach the answer to the second sample case one must not decrease any of the array elements.
//运用贪心法 使所有数字变换成连续的非递减的 末尾数字加一 即为所求最大 #include<stdio.h>#include<algorithm>using namespace std;const int maxn=100001;int a[maxn];int main(){int n;scanf("%d",&n);for(int i=0; i<n; i++)scanf("%d",&a[i]);sort(a,a+n);int res=0;//理解: 若数组是1 2 3 4 5 则结果为6 // 1 3 3 3 5 转化成 1 2 3 3 4 结果为5// 1 3 3 3 5 for(int i=0; i<n; i++)if(a[i]>res) //res 不可能大于a[i] 这里排除的是等于a[i]的情况 //这种情况下 a[i]不可能转化成比前面数字更小 所以res不需要加 {//printf("a[%d]=%d\n",i,res);res++;}res++;//找到了转化后数组的最后一个元素的值 后按照题目要求需要在它的基础上再加一printf("%d\n",res);}总结:该题的主要难点是理解题目的意思,感觉如果彻底弄清楚解题步骤的话,写出代码不是问题。分析需要仔细谨慎,考虑全面。现阶段还是水平太菜,见识太浅,唯有努力刷题刷题再刷题。另外英文水平和赛场心理素质都急需增强。敲代码完整理解好题目后再下手,切忌冒进烦躁。
- Codeforces 358 . B Alyona and Mex
- Codeforces Round #358 (Div. 2) B. Alyona and Mex
- Codeforces Round #358 (Div. 2) B. Alyona and Mex
- Codeforces Round #358 (Div. 2) B. Alyona and Mex
- Codeforces Round #358 (Div. 2) B. Alyona and Mex【水题】
- Codeforces Round #358 (Div. 2) B. Alyona and Mex 水题
- CodeForces 682B Alyona and Mex
- CodeForces 682B Alyona and Mex
- CodeForces 682B Alyona and Mex
- B. Alyona and Mex
- codeforce B. Alyona and Mex
- Codeforces Round #358 (Div. 2) B Alyona and Mex(水题)
- Codeforces Round #358 (Div. 2) -- B. Alyona and Mex (思路水题)
- Codeforces Round #381C. Alyona and mex
- Codeforces 739A Alyona and mex(构造)
- 【39.66%】【codeforces 740C】Alyona and mex
- Codeforces #381 C. Alyona and mex
- CodeForces 740C - Alyona and mex(思维)
- 人的潜力和极限
- Python中maxint与系统位数(32/64)的关系
- nginx ssl配置
- 使用ImageNet在faster-rcnn上训练自己的分类网络
- 条件编译
- Codeforces 358 . B Alyona and Mex
- C#基础(2)
- Linux内核驱动之DDR3(一)寻址
- Python 资源大全中文版
- C/C++框架和库
- mac vim IDE插件安装
- 正则表达式 学习整理
- mac vim IDE插件安装
- 分解字符串