亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

UVA 11100 The Trip, 2007 水題一枚

系統 1687 0

題目鏈接: UVA - 11100

題意描述:n個旅行箱,形狀相同,尺寸不同,尺寸小的可以放在尺寸大的旅行箱里。現在要求露在最外面的旅行箱的數量最少的同時滿足一個旅行箱里放的旅行箱的數量最少。求出這樣滿足要求的任意一種方案。

算法分析:首先我們可以確定最少的旅行箱的數量cnt:即n個旅行箱里按照尺寸大小分類(尺寸相同的在同一類),數量最多的那一類的數量。然后把cnt看成有cnt個堆,第二個要求就是要讓這cnt個堆里最大旅行箱數量最小,直接用vector處理即可。

等AC之后突然想到,三個旅行箱尺寸大小為2,2,4,那么就可以把前兩個放在最后一個呀,但答案不是這樣的。-_-

      
         1
      
       #include<iostream>


      
         2
      
       #include<cstdio>


      
         3
      
       #include<cstring>


      
         4
      
       #include<cstdlib>


      
         5
      
       #include<cmath>


      
         6
      
       #include<algorithm>


      
         7
      
       #include<vector>


      
         8
      
      
        #define
      
       inf 0x7fffffff


      
         9
      
      
        using
      
      
        namespace
      
      
         std;


      
      
        10
      
      
        const
      
      
        int
      
       maxn=
      
        10000
      
      +
      
        10
      
      
        ;


      
      
        11
      
      
        const
      
      
        int
      
       M = 
      
        1000000
      
      +
      
        10
      
      
        ;


      
      
        12
      
      
        13
      
      
        int
      
      
         n,an[maxn];


      
      
        14
      
      
        int
      
      
         vis[M],num[maxn];


      
      
        15
      
       vector<
      
        int
      
      >
      
         vec[maxn];


      
      
        16
      
      
        17
      
      
        int
      
      
         main()


      
      
        18
      
      
        {


      
      
        19
      
      
        int
      
       ok=
      
        0
      
      
        ;


      
      
        20
      
      
        while
      
       (scanf(
      
        "
      
      
        %d
      
      
        "
      
      ,&n)!=EOF &&
      
         n)


      
      
        21
      
      
            {


      
      
        22
      
      
        if
      
       (ok) printf(
      
        "
      
      
        \n
      
      
        "
      
      
        );


      
      
        23
      
               ok=
      
        1
      
      
        ;


      
      
        24
      
               memset(vis,
      
        0
      
      ,
      
        sizeof
      
      
        (vis));


      
      
        25
      
      
        for
      
       (
      
        int
      
       i=
      
        0
      
       ;i<maxn ;i++
      
        ) vec[i].clear();


      
      
        26
      
      
        int
      
       cnt=
      
        0
      
      ,maxSize=
      
        0
      
      
        ;


      
      
        27
      
      
        for
      
       (
      
        int
      
       i=
      
        1
      
       ;i<=n ;i++
      
        )


      
      
        28
      
      
                {


      
      
        29
      
                   scanf(
      
        "
      
      
        %d
      
      
        "
      
      ,&
      
        an[i]);


      
      
        30
      
                   vis[an[i] ]++
      
        ;


      
      
        31
      
                   cnt=
      
        max(cnt,vis[an[i] ]);


      
      
        32
      
                   maxSize=
      
        max(maxSize,an[i]);


      
      
        33
      
      
                }


      
      
        34
      
               sort(an+
      
        1
      
      ,an+n+
      
        1
      
      
        );


      
      
        35
      
      
        int
      
       c=
      
        0
      
      
        ;


      
      
        36
      
      
        for
      
       (
      
        int
      
       i=
      
        1
      
       ;i<=n ;i++
      
        )


      
      
        37
      
      
                {


      
      
        38
      
      
                    vec[c].push_back(an[i]);


      
      
        39
      
                   c=(c+
      
        1
      
      )%
      
        cnt;


      
      
        40
      
      
                }


      
      
        41
      
               printf(
      
        "
      
      
        %d\n
      
      
        "
      
      
        ,cnt);


      
      
        42
      
      
        for
      
       (
      
        int
      
       i=
      
        0
      
       ;i<cnt ;i++
      
        )


      
      
        43
      
      
                {


      
      
        44
      
      
        int
      
       k=
      
        vec[i].size();


      
      
        45
      
                   printf(
      
        "
      
      
        %d
      
      
        "
      
      ,vec[i][
      
        0
      
      
        ]);


      
      
        46
      
      
        for
      
       (
      
        int
      
       j=
      
        1
      
       ;j<k ;j++) printf(
      
        "
      
      
         %d
      
      
        "
      
      
        ,vec[i][j]);


      
      
        47
      
                   printf(
      
        "
      
      
        \n
      
      
        "
      
      
        );


      
      
        48
      
      
                }


      
      
        49
      
      
            }


      
      
        50
      
      
        return
      
      
        0
      
      
        ;


      
      
        51
      
       }
    

?

UVA 11100 The Trip, 2007 水題一枚


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。?!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 精品1区2区3区 | 中文字幕亚洲一区二区三区 | 免费一级欧美大片视频在线 | 全部精品孕妇色视频在线 | 中文字幕久久久久久久系列 | 精品国产免费久久久久久婷婷 | 最新中文字幕在线播放 | 国产夜夜操| 人人狠狠综合久久亚洲 | 国产成人视屏 | 高清免费毛片 | 久草不卡视频 | 日韩久草 | 国产在线观看91 | 精品亚洲综合久久中文字幕 | 香蕉成人啪国产精品视频综合网 | av在线色 | 天天看夜夜操 | 国产91在线精品福利 | 亚洲成 人a影院青久在线观看 | 国产精品久久久久久五月尺 | 日韩国产成人 | 国产一区二区三区在线观看免费 | 日韩国产精品视频 | 国产高清精品91在线 | 国产成人久久精品激情91 | 国产欧美一区二区三区免费看 | 中文字幕日本在线 | 日韩在线一区视频 | 国产精品夜色一区二区三区 | 亚洲欧美国产高清va在线播放 | 亚洲精品自拍视频 | 一道精品视频一区二区三区图片 | 国产中文在线观看 | 天天射天天操天天 | 欧美日韩国产成人综合在线 | 久久久久久a亚洲欧洲aⅴ | 奇米999| 亚洲综合一区二区精品久久 | 看真人视频一级毛片 | 亚洲在线观看一区 |