zoukankan      html  css  js  c++  java
  • nowcoder300J Mex

    题目链接

    题意

    给出一个长度为(n(n le 10^5))序列,求其每个子序列之和所组成的集合的(mex)

    思路

    这么水的题都没想出来,感觉自己脑子瓦特了。
    假设前(i)位可以组成区间([0,x])内的所有数。那么加入第(i+1)位后,就会让([0+a[i+1],x + a[i + 1]])这个区间中的所有数字都可以组成。只要判断这个区间和原区间并起来是不是连续的就行了。

    代码

    /*
    * @Author: wxyww
    * @Date:   2019-04-21 11:49:09
    * @Last Modified time: 2019-04-21 14:14:56
    */
    #include<cstdio>
    #include<iostream>
    #include<cstdlib>
    #include<cstring>
    #include<algorithm>
    #include<queue>
    #include<vector>
    #include<ctime>
    using namespace std;
    typedef long long ll;
    const int N = 100000 + 100;
    ll read() {
    	ll x=0,f=1;char c=getchar();
    	while(c<'0'||c>'9') {
    		if(c=='-') f=-1;
    		c=getchar();
    	}
    	while(c>='0'&&c<='9') {
    		x=x*10+c-'0';
    		c=getchar();
    	}
    	return x*f;
    }
    int a[N];
    int main() {
    	int n = read();
    	for(int i = 1;i <= n;++i) a[i] = read();
    	sort(a + 1,a + n + 1);
    	ll now = 0;
    	for(int i = 1;i <= n;++i) {
    		if(now < a[i] - 1) {
    			printf("%d
    ",now + 1);
    			return 0;
    		}
    		now += a[i];
    	}
    	cout<<now + 1;
    	return 0;
    }
    
  • 相关阅读:
    关于登录或授权页面的错误提示
    弱网环境模拟工具
    Android Fragment 深度解析
    排序算法(七)
    排序算法(六)
    排序算法(五)
    java之数组
    排序算法(四)
    排序算法(三)
    排序算法(二)
  • 原文地址:https://www.cnblogs.com/wxyww/p/nowcoder700J.html
Copyright © 2011-2022 走看看