• UVA 11100 The Trip, 2007


    UVA_11100

        首先,pieces的数目是取决于出现的次数最多的数的,出现次数最多的数的出现次数就是pieces的数目。

        剩下还要保证每个pieces里面盒子数的最大值要尽量小,那么可以直接将盒子按大小排序,然后将每个盒子按1,2,...,n,1,2,...n...的顺序依次放到每个piece中,就可以构造出一个符合题意的放置方案了,其中n表示pieces的数目。

    #include<stdio.h>
    #include<string.h>
    #include<vector>
    #include<algorithm>
    #define MAXN 10010
    int a[MAXN], N;
    void input()
    {
        for(int i = 0; i < N; i ++) scanf("%d", &a[i]);
        std::sort(a, a + N);
    }
    void process()
    {
        int cur = 0, n = 0;
        std::vector<int> b[MAXN];
        while(cur < N)
        {
            int pre = cur;
            while(cur < N && a[cur] == a[pre]) ++ cur;
            n = std::max(n, cur - pre);
        }
        for(int i = 0; i < N; i ++) b[i % n].push_back(a[i]);
        printf("%d\n", n);
        for(int i = 0; i < n; i ++)
        {
            printf("%d", b[i][0]);
            for(int j = 1; j < b[i].size(); j ++) printf(" %d", b[i][j]);
            printf("\n");
        }
    }
    int main()
    {
        int t = 0;
        while(scanf("%d", &N), N)
        {
            input();
            if(t ++) printf("\n");
            process();
        }
        return 0;
    }
  • 相关阅读:
    如何安装unidac 6.2.8 到delphi 7
    Sqoop
    Spark-PySpark sql各种内置函数
    Spark译文(三)
    Spark译文(二)
    Spark译文(一)
    YARN详解
    Spark2.X管理与开发
    Hadoop2.X管理与开发
    离线综合案例
  • 原文地址:https://www.cnblogs.com/staginner/p/2763495.html
Copyright © 2020-2023  润新知