• <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>

            糯米

            TI DaVinci, gstreamer, ffmpeg
            隨筆 - 167, 文章 - 0, 評(píng)論 - 47, 引用 - 0
            數(shù)據(jù)加載中……

            POJ 1945 Power Hungry Cows 終極打表

            這道題是一道智力題
            所以想了n久,都想不出什么“數(shù)學(xué)方法”。甚至都想不出什么比較好的剪枝方法。
            測(cè)了一下,普通的bfs比較慢。算到18步就開始就龜速了。
            要算到21步才能得出1~20000的每一個(gè)答案。然而算到21步,在T8100 cpu的本本上都要跑半分鐘,囧。。
            所以沒(méi)辦法了,只能打表了。看了一下status。發(fā)現(xiàn)排在第一頁(yè)的人打表的不少呢!哈哈。

            但是問(wèn)題來(lái)了。20000大小的數(shù)組,每個(gè)元素在1~21之間,如果這樣表示出來(lái)
            int arr = {1, 2, 3, ....}
            那不得40k+左右嗎。顯然poj是不允許提交這么大的代碼的!
            但是status里面那些打表的人,代碼都在20k~30k左右。這是怎么回事呢?
            我有點(diǎn)懷疑別人看了答案,呵呵。但又不排除有方法能把代碼長(zhǎng)度控制好。
            所以,考慮了下面幾個(gè)方法:


            1. 元素的范圍是在 1~21 之間。所以要盡量用4bit表示一個(gè)元素。
            統(tǒng)計(jì)了下,發(fā)現(xiàn)16以上的元素占了70%左右。所以規(guī)定:
            >=16的元素,表示為 u4 arr[] = { (val&0xf) + 1 } 占用4bit
            < 16的元素,表示為 u4 arr[] = { 0, val } 占用8bit
            將它稱之為"halfbyte"壓縮
            2. 霍夫曼壓縮,lz77壓縮
            3. base64編碼

            這兩天實(shí)在是閑的蛋疼。于是就把這個(gè)幾個(gè)玩意寫了一下。
            經(jīng)過(guò)測(cè)試,發(fā)現(xiàn)用 lz77 是獲得的代碼長(zhǎng)度是最短的!僅9k!
            統(tǒng)計(jì)如下:

            === generate: e:\test\1945_base64.cpp
            base64 encode: 20032 -> 26712 133.35%
            total: 20032 -> 26712 133.35%
            file size: 27.22K

            === generate: e:\test\1945_halfbyte_base64.cpp
            halfbyte encode: 20032 -> 11842 59.12%
            base64 encode: 11842 -> 15792 133.36%
            total: 20032 -> 15792 78.83%
            file size: 17.15K

            === generate: e:\test\1945_halfbyte_huffman_base64.cpp
            halfbyte encode: 20032 -> 11842 59.12%
            huffman encode: 11842 -> 5964 50.36%
            base64 encode: 5964 -> 7952 133.33%
            total: 20032 -> 7952 39.70%
            file size: 11.42K

            === generate: e:\test\1945_halfbyte_huffman_lz77_base64.cpp
            halfbyte encode: 20032 -> 11842 59.12%
            huffman encode: 11842 -> 5964 50.36%
            lz77 encode: 5964 -> 8838 148.19%
            base64 encode: 8838 -> 11784 133.33%
            total: 20032 -> 11784 58.83%
            file size: 15.78K

            === generate: e:\test\1945_huffman_base64.cpp
            huffman encode: 20032 -> 6644 33.17%
            base64 encode: 6644 -> 8860 133.35%
            total: 20032 -> 8860 44.23%
            file size: 11.71K

            === generate: e:\test\1945_huffman_lz77_base64.cpp
            huffman encode: 20032 -> 6644 33.17%
            lz77 encode: 6644 -> 8097 121.87%
            base64 encode: 8097 -> 10796 133.33%
            total: 20032 -> 10796 53.89%
            file size: 14.21K

            === generate: e:\test\1945_lz77_base64.cpp
            lz77 encode: 20032 -> 5422 27.07%
            base64 encode: 5422 -> 7232 133.38%
            total: 20032 -> 7232 36.10%
            file size: 8.81K

            所有方法都是0~32ms AC。
            呵呵,代碼太長(zhǎng)了,就不貼了,給個(gè)下載:

            /Files/varg-vikernes/1945.rar

            posted on 2010-02-18 16:53 糯米 閱讀(2811) 評(píng)論(2)  編輯 收藏 引用 所屬分類: POJ

            評(píng)論

            # re: POJ 1945 Power Hungry Cows 終極打表[未登錄](méi)  回復(fù)  更多評(píng)論   

            http://www.shnenglu.com/varg-vikernes/archive/2010/02/18/108024.aspx
            2014-07-30 16:07 | 糯米

            # re: POJ 1945 Power Hungry Cows 終極打表[未登錄](méi)  回復(fù)  更多評(píng)論   

            http://blog.csdn.net/lencle/article/details/7005546
            2014-07-30 16:08 | 糯米
            久久SE精品一区二区| 久久se精品一区精品二区国产| 久久精品国产清自在天天线| 热RE99久久精品国产66热| 伊人久久大香线蕉综合Av | 久久se精品一区二区影院| 久久只有这里有精品4| 久久热这里只有精品在线观看| 2021久久精品免费观看| 久久久青草青青亚洲国产免观| 丁香五月综合久久激情| 亚洲伊人久久大香线蕉综合图片| 久久精品国产半推半就| 三级三级久久三级久久 | 久久精品国产一区| 99久久综合国产精品免费| 国产一久久香蕉国产线看观看| 久久午夜无码鲁丝片午夜精品| 久久人人爽人人爽人人AV东京热| 久久99精品免费一区二区| 色婷婷综合久久久久中文| 亚洲?V乱码久久精品蜜桃 | 亚洲精品tv久久久久久久久| 7国产欧美日韩综合天堂中文久久久久 | 一本久久综合亚洲鲁鲁五月天亚洲欧美一区二区 | 人妻少妇久久中文字幕一区二区| 久久午夜无码鲁丝片午夜精品| 精品综合久久久久久888蜜芽| 亚洲欧洲精品成人久久曰影片| 国产精品嫩草影院久久| 久久精品这里热有精品| 97久久超碰国产精品旧版| 无码人妻久久一区二区三区| 久久久久久精品久久久久| 人妻无码精品久久亚瑟影视| 久久久久久久久久久免费精品 | 精品久久久久久久久久久久久久久 | 久久免费精品一区二区| 99久久超碰中文字幕伊人| 久久久亚洲欧洲日产国码二区| 久久天天躁狠狠躁夜夜2020一|