青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

POJ百練 - 1017:裝箱問題

鏈接:http://poj.grids.cn/practice/1017

說實話
這就是個簡單的裝箱子問題,很容易想清楚裝箱子的過程,而且這個過程是滿足貪心算法的,
所以只需要用代碼模擬整個裝箱子的過程即可,但是這樣真的就足夠了嗎???
我剛開始就是用代碼模擬這個手動過程了,雖然AC了,但是代碼有150行左右,邏輯也顯得過于復雜了,
得不償失。。。整個過程是6*6的一個占一個箱子,5*5的也必須一個占一個箱子,但是需要補11個1*1的,
4*4的也是一個占一個箱子,但是需要補5個2*2的,如果2*2的不足夠,則用1*1的代替,
3*3的4個占一個箱子,但是會有余數,可能余下1,2,3個3*3的箱子,這個時候必須非情況考慮,
1個3*3的需要和5個2*2的,7個1*1的組合,2個3*3的需要和3個2*2的,6個1*1的組合,
3個3*3的需要和1個2*2的,5個1*1的組合,最后考慮9個2*2的裝一個箱子,多余的2*2用1*1的去填充盡量擠滿一個箱子,
最后36個1*1的裝一個箱子,余下的1*1的也必須占一個箱子。。。
這個過程說出來已經非常復雜了,更何況用代碼寫,我費了九牛二虎之力才寫出來,WA了一次才AC了...

代碼:
#include <stdio.h>
int main()
{
    int one, two, three, four, five, six;
    int num = 0;
    
    while (scanf("%d%d%d%d%d%d", &one, &two, &three, &four, &five, &six) == 6)
    {
        if (one == 0 && two == 0 && three == 0 && four == 0 && five == 0 && six == 0)
        {
            break;
        }
        
        num = six;
        num += five;
        if (one > five * 11)
        {
            one -= five * 11;
        }
        else
        {
            one = 0;
        }
        
        num += four;
        if (two > four * 5)
        {
            two -= four * 5;
        }
        else
        {
            if (one > four * 5 * 4 - two * 4)
            {
                one -= four * 5 * 4 - two * 4;
            }
            else
            {
                one = 0;
            }
            two = 0;
        }
        
        num += three / 4;
        three = three % 4;
        if (three == 1)
        {
            if (two > 5)
            {
                two -= 5;
                if (one > 7)
                {
                    one -= 7;
                }
                else
                {
                    one = 0;
                }
            }
            else
            {
                if (one > 27 - two * 4)
                {
                    one -= 27 - two * 4;
                }
                else
                {
                    one = 0;
                }
                two = 0;
            }
            ++num;
        }
        
        if (three == 2)
        {
            if (two > 3)
            {
                two -= 3;
                if (one > 6)
                {
                    one -= 6;
                }
                else
                {
                    one = 0;
                }
            }
            else
            {
                if (one > 18 - two * 4)
                {
                    one -= 18 - two * 4;
                }
                else
                {
                    one = 0;
                }
                two = 0;
            }
            ++num;
        }
        
        if (three == 3)
        {
            if (two > 1)
            {
                two -= 1;
                if (one > 5)
                {
                    one -= 5;
                }
                else
                {
                    one = 0;
                }
            }
            else
            {
                if (one > 9 - two * 4)
                {
                    one -= 9 - two * 4;
                }
                else
                {
                    one = 0;
                }
                two = 0;
            }
            ++num;
        }
        
        num += two / 9;
        two = two % 9;
        if (two)
        {
            if (one > 36 - two * 4)
            {
                one -= 36 - two * 4;
            }
            else
            {
                one = 0;
            }
            ++num;
        }
        
        num += one / 36;
        if (one % 36)
        {
            ++num;
        }
        
        printf("%d\n", num);
    }
    
    return 0;
}


這樣的寫法顯然不好吧。。。首先,余下1,2,3個3*3時候需要填幾個2*2的可以存儲在數組里面,這樣就可以不用寫重復代碼了,
如果再從整體考慮余下多少個格子,就不用用貪心算法模擬裝箱子的過程了。。。
代碼如下:
#include <stdio.h>
int main()
{
    int one, two, three, four, five, six;
    int num = 0;
    int twoPlace[4] = {0, 5, 3, 1};
    int remTwo, remOne;
    
    while (scanf("%d%d%d%d%d%d", &one, &two, &three, &four, &five, &six) == 6)
    {
        if (one == 0 && two == 0 && three == 0 && four == 0 && five == 0 && six == 0)
        {
            break;
        }
        
        num = six + five + four + (three + 3) / 4;
        remTwo = four * 5 + twoPlace[three % 4];
        if (two > remTwo)
        {
            num += (two - remTwo + 8) / 9;
        }
        
        remOne = 36 * num - 36 * six - 25 * five - 16 * four - 9 * three - 4 * two;
        if (one > remOne)
        {
            num += (one - remOne + 35) / 36;
        }
        
        printf("%d\n", num);
    }
    
    return 0;
}

posted on 2011-11-08 20:15 yx 閱讀(1962) 評論(0)  編輯 收藏 引用 所屬分類: 解題報告貪心

<2011年11月>
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910

導航

統計

公告

常用鏈接

留言簿(3)

隨筆分類

隨筆檔案

me

好友

同學

網友

搜索

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            蜜臀99久久精品久久久久久软件 | 蜜臀av一级做a爰片久久| 欧美日韩成人一区二区三区| 亚洲一区网站| 麻豆精品视频在线观看| 噜噜噜噜噜久久久久久91| 亚洲校园激情| 一区二区三区日韩欧美| 久久精品麻豆| 一区二区三区高清| 欧美在线黄色| 欧美区国产区| 国产精品羞羞答答| 亚洲国产精品久久久久秋霞不卡| 在线精品视频在线观看高清| 亚洲精品国产视频| 香港久久久电影| 亚洲自拍高清| 久久久国产精品亚洲一区| 亚洲最新视频在线| 亚洲视频碰碰| 美女脱光内衣内裤视频久久影院| 欧美亚洲一区三区| 久久精品成人一区二区三区| 免费一区视频| 最新成人在线| 最新国产拍偷乱拍精品| 欧美激情一区二区三区在线视频| 在线观看欧美日本| 久久亚洲一区二区| 欧美在线视频导航| 亚洲狠狠婷婷| 91久久国产自产拍夜夜嗨| 亚洲综合成人婷婷小说| 久久综合久久综合久久综合| 久久久精品久久久久| 亚洲国产裸拍裸体视频在线观看乱了中文 | 韩日午夜在线资源一区二区| 久久久亚洲国产天美传媒修理工| 亚洲欧美国产精品va在线观看| 欧美三区在线| 亚洲国产精品国自产拍av秋霞| 欧美精选午夜久久久乱码6080| 亚洲欧美日韩国产一区| 亚洲综合久久久久| 欧美日韩一区精品| 日韩亚洲视频在线| 亚洲理论在线| 日韩视频免费观看| 国产精品激情电影| 欧美高清在线一区| 久久久美女艺术照精彩视频福利播放| 亚洲第一天堂无码专区| 亚洲先锋成人| 国外成人在线视频网站| 一区二区三区视频在线播放| 国产伊人精品| 亚洲乱码一区二区| 国精品一区二区| 亚洲免费av观看| 国产婷婷一区二区| 美女999久久久精品视频| 久久九九热re6这里有精品| 国产精品丝袜白浆摸在线| 久久综合九色| 国产免费观看久久黄| 亚洲福利av| 国产一区二区三区高清在线观看| 欧美激情视频给我| 国产色视频一区| 久久国产婷婷国产香蕉| 午夜欧美大片免费观看| 欧美成人一区二区三区在线观看| 老司机免费视频一区二区三区| 亚洲精品影院在线观看| 久久成人羞羞网站| 欧美成人首页| 永久555www成人免费| 模特精品在线| 一本大道久久a久久精品综合| 国产一区二区av| 亚洲欧美在线播放| 欧美片在线观看| 亚洲欧美中日韩| 亚洲国产导航| 欧美高清视频在线| 亚洲毛片在线观看| 亚洲精品一级| 日韩一级免费观看| 久久久久久精| 欧美日本视频在线| 免费h精品视频在线播放| 亚洲激情视频在线观看| 亚洲国产成人精品视频| 久久精品免费观看| 亚洲免费观看| 久久综合久色欧美综合狠狠| 亚洲天堂网在线观看| 亚洲欧洲在线视频| 日韩一二三区视频| 国产日韩在线视频| 国产私拍一区| 黄色成人小视频| 激情欧美一区二区三区| 国产精品久久波多野结衣| 亚洲国产欧美不卡在线观看| 久久精品99无色码中文字幕 | 欧美人与性动交cc0o| 亚洲人成毛片在线播放| 麻豆精品91| 欧美一区二区高清| 中国av一区| 国产精品99久久久久久久久久久久| 国内精品久久久久伊人av| 欧美日韩一区在线视频| 国产精品青草综合久久久久99| 亚洲黄色视屏| 久久久精品五月天| 亚洲毛片播放| 亚洲影院在线观看| 久久国产精品网站| 亚洲人成高清| 欧美日韩国产精品一卡| 亚洲资源在线观看| 99精品国产高清一区二区| 亚洲激情电影中文字幕| 欧美精品七区| 久久成人免费视频| 亚洲免费观看高清在线观看 | 欧美日产在线观看| 日韩一区二区精品视频| 狠狠色狠狠色综合日日tαg | 日韩一级黄色大片| 欧美黄色一级视频| 久久综合狠狠综合久久综青草| 亚洲电影av在线| 国产欧美短视频| 欧美网站大全在线观看| 欧美大片在线看| 欧美岛国在线观看| 久久天天躁夜夜躁狠狠躁2022| 亚洲综合999| 久久天天躁夜夜躁狠狠躁2022| 欧美资源在线观看| 奶水喷射视频一区| 欧美日韩无遮挡| 欧美日韩一级大片网址| 欧美三级在线播放| 久久亚洲欧美国产精品乐播| 在线观看免费视频综合| 亚洲第一精品福利| 国产欧美va欧美不卡在线| 欧美日韩国产系列| 欧美精品免费视频| 欧美日本一区| 国产精品成人v| 欧美黄色一级视频| 国产精品国产三级国产专区53| 性久久久久久久| 亚洲国产精品久久久久| 99av国产精品欲麻豆| 亚洲一级二级| 久久精品在线| 欧美激情视频一区二区三区在线播放| 久久欧美肥婆一二区| 欧美日韩mp4| 亚洲自拍偷拍色片视频| 性久久久久久久久| 亚洲精品免费电影| 亚洲免费在线观看视频| 欧美成人亚洲成人| 欧美天堂亚洲电影院在线播放| 国产丝袜一区二区| 亚洲精选在线观看| 久久国产精品黑丝| 亚洲乱码一区二区| 裸体女人亚洲精品一区| 国产女人水真多18毛片18精品视频| 伊人成人在线| 久久久久免费视频| 久久国产直播| 一个色综合导航| 午夜精品久久久久久久白皮肤| 欧美国产日韩一区二区三区| 亚洲裸体视频| 亚洲特黄一级片| 国产欧美欧美| 亚洲午夜精品国产| 中文亚洲欧美| 精品成人一区二区三区| 好吊视频一区二区三区四区| 亚洲欧美激情视频在线观看一区二区三区 | 免费精品视频| 在线视频一区观看| 亚洲一区高清| 雨宫琴音一区二区在线| 亚洲激情视频在线| 欧美日韩另类综合| 性欧美videos另类喷潮| 欧美在线免费视频|