zoukankan      html  css  js  c++  java
  • codeforces 659C Tanya and Toys

    题目链接http://codeforces.com/problemset/problem/659/C

    题意

    n是已经有的数字,m是可用的最大数字和

    要求选自己没有的数字,且这些数字的数字和不能超过m

    且要求可选的数字的数目越多越好

    输出一种答案即可

    解题思路

    刚开始想开一个bool型的1e9的数组,然后判断即可

    可是交上去发现内存超限

    后来把1e9的数组改成2*1e6的数组即可

    具体原因应该从数学数字和方面考虑

    具体代码如下

    #include<bits/stdc++.h>
    
    using namespace std;
    
    bool a[200006];
    
    int main()
    {
        int n,m,t;
        scanf("%d %d",&n,&m);
        for(int i=0;i<n;i++)
        {
            cin>>t;
            if(t>200000) continue;
            a[t]=1;
        }
        int kind=0;
        int i;
        for(i=1;i<=200000;i++)
        {
            if(m<i) break;
            if(a[i]==0)
            {
                m-=i;
                kind++;
            }
        }
        printf("%d
    ",kind);
        for(int j=1;j<i;j++)
        {
            if(!a[j])
            printf("%d ",j);
        }
        printf("
    ");
        return 0;
    }
  • 相关阅读:
    DRF 版本和认证
    DRF 视图和路由
    DRF 序列化组件
    RESTful
    Vuex以及axios
    npm、webpack、vue-cli
    Vue 生命周期
    Vue Router
    Vue 组件
    Vue 快速入门
  • 原文地址:https://www.cnblogs.com/gaoss/p/5343122.html
Copyright © 2011-2022 走看看