搜索
您的当前位置:首页正文

B - Alyona and Mex

来源:小奈知识网

 

题意:

给出n个元素,元素可交换或减小,求最终缺少的最小正整数的最大值(mex)。

 

仔细观察我们不难看出当n个元素为从1~n递增时mex取最大值,如n=5时,1,2,3,4,5,mex取最大值6。所以我们就将数列尽量接近连续递增数列。

如1 3 3 3 6可改为1 2 3 3 4则取最大值mex为5。

 

附AC代码:

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<algorithm>
 5 using namespace std;
 6 
 7 const int MAX=101000;
 8 
 9 int a[MAX];
10 
11 int main(){
12     int n;
13     while(cin>>n){
14         for(int i=0;i<n;i++){
15             cin>>a[i];
16         }
17         int ans=1;
18         sort(a,a+n);//排序 
19         for(int i=0;i<n;i++){
20             if(a[i]>=ans)//注意等于 
21             ans++;
22         }
23         cout<<ans<<endl;
24     }
25     return 0;
26 } 

 

转载于:https://www.cnblogs.com/Kiven5197/p/5659184.html

因篇幅问题不能全部显示,请点此查看更多更全内容

Top