美文网首页程序员
643div2 - B. Young Explorers

643div2 - B. Young Explorers

作者: waaagh | 来源:发表于2020-05-23 23:43 被阅读0次

    很容易想到贪婪,按inexperience 从小到大依次组肯定能获得最大组数。

    此题有个问题,我用set TLE而map AC,难道两者速度差距这么大吗?求指点
    map AC

    #include<bits/stdc++.h>
    using namespace std;
    const int MAXN = 2e5+10;
    int T, N;
    int e[MAXN];
    map<int, int> mii;
    int main() {
        scanf("%d", &T);
        while(T--) {
            scanf("%d", &N);
            mii.clear();
            int e;
            for(int i=1; i<=N; i++) {
                scanf("%d", &e);
                mii[e]++;
            }
            int ans = 0; int rest = 0;
            for(auto e : mii) {
                ans +=(rest + e.second)/e.first;
                rest = (rest + e.second)%e.first;
            }        
            printf("%d\n", ans);
        }
        return 0;
    }
    

    set TLE

    #include<bits/stdc++.h>
    using namespace std;
    const int MAXN = 2e5+10;
    int T, N;
    int e[MAXN];
    int cnt[MAXN];
    set<int> s;
    int main() {
        scanf("%d", &T);
        while(T--) {
            scanf("%d", &N);
            memset(cnt, 0, sizeof(cnt));
            s.clear();
            int e;
            for(int i=1; i<=N; i++) {
                scanf("%d", &e);
                cnt[e]++;
                s.insert(e);
            }
            int ans = 0; int rest = 0;
            for(auto e : s) {
                ans += (rest + cnt[e])/e;
                rest = (rest + cnt[e])%e;
            }        
            printf("%d\n", ans);
        }
        return 0;
    }
    

    相关文章

      网友评论

        本文标题:643div2 - B. Young Explorers

        本文链接:https://www.haomeiwen.com/subject/riprahtx.html