• <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 2436 Disease Management 排列組合

            思路:

            這題沒(méi)有啥好的方法了,看來(lái)。用組合C(K, D)枚舉所有可能的疾病集合。
            其實(shí)復(fù)雜度很高的,C(15, 7) 都不知道多大了。但是數(shù)據(jù)比較弱。
            用別人的代碼試了一下,用STL里面的全排列生成函數(shù),都可以 60ms AC。
            下面的代碼,沒(méi)有用STL里面的函數(shù),我以為會(huì)快一點(diǎn),結(jié)果慢了不少,200+ms。。
            原理就是把16位分成2個(gè)8位來(lái)處理。

            #include <stdio.h>

            struct table {
                
            int cnt, arr[128];
            }
             tbl[] = {
                
            1{0,} },
                
            8{1,2,4,8,16,32,64,128,} },
                
            28{3,5,6,9,10,12,17,18,20,24,33,34,36,40,48,65,66,68,72,80,96,129,130,132,136,144,160,192,} },
                
            56{7,11,13,14,19,21,22,25,26,28,35,37,38,41,42,44,49,50,52,56,67,69,70,73,74,76,81,82,84,88,97,98,100,104,112,131,133,134,137,138,140,145,146,148,152,161,162,164,168,176,193,194,196,200,208,224,} },
                
            70{15,23,27,29,30,39,43,45,46,51,53,54,57,58,60,71,75,77,78,83,85,86,89,90,92,99,101,102,105,106,108,113,114,116,120,135,139,141,142,147,149,150,153,154,156,163,165,166,169,170,172,177,178,180,184,195,197,198,201,202,204,209,210,212,216,225,226,228,232,240,} },
                
            56{31,47,55,59,61,62,79,87,91,93,94,103,107,109,110,115,117,118,121,122,124,143,151,155,157,158,167,171,173,174,179,181,182,185,186,188,199,203,205,206,211,213,214,217,218,220,227,229,230,233,234,236,241,242,244,248,} },
                
            28{63,95,111,119,123,125,126,159,175,183,187,189,190,207,215,219,221,222,231,235,237,238,243,245,246,249,250,252,} },
                
            8{127,191,223,239,247,251,253,254,} },
                
            1{255,} },
            }
            ;

            int in[1024], N, D, K, ans;

            inline 
            int max(int a, int b)
            {
                
            return a > b ? a : b;
            }


            inline 
            int min(int a, int b)
            {
                
            return a < b ? a : b;
            }


            inline 
            void update(int mask)
            {
                
            int i, c;

                
            for (c = i = 0; i < N; i++)
                    
            if ((in[i] | mask) == mask)
                        c
            ++;
                ans 
            = max(ans, c);
            }


            inline 
            void put(struct table *t, int limit, int mask)
            {
                
            int i;

                
            for (i = 0; i < t->cnt && t->arr[i] < limit; i++
                    update(t
            ->arr[i] | mask);
            }


            int main()
            {
                
            int i, j, cnt, val;

                freopen(
            "e:\\test\\in.txt","r",stdin);
                
                scanf(
            "%d%d%d"&N, &D, &K);
                
            for (i = 0; i < N; i++{
                    scanf(
            "%d"&cnt);
                    
            for (val = 0; cnt--; ) {
                        scanf(
            "%d"&j);
                        j
            --;
                        val 
            |= 1 << j;
                    }

                    
            in[i] = val;
                }


                
            if (D > 8{
                    
            for (i = max(K - 80); i <= min(D - 8, K); i++)
                        
            for (j = 0; j < tbl[i].cnt; j++)
                            put(
            &tbl[K - i], 256, tbl[i].arr[j] << 8);
                }
             else 
                    put(
            &tbl[K], 1 << D, 0);

                printf(
            "%d\n", ans);

                
            return 0;
            }

            posted on 2010-04-17 20:24 糯米 閱讀(544) 評(píng)論(0)  編輯 收藏 引用 所屬分類(lèi): POJ

            久久99精品国产麻豆蜜芽| 久久久久人妻一区二区三区| 久久久久久午夜成人影院| 国产美女久久久| 久久精品中文字幕有码| 亚洲va国产va天堂va久久| 久久亚洲国产成人影院网站 | 久久精品人人做人人爽电影蜜月 | 久久久无码精品亚洲日韩蜜臀浪潮| 狠狠色丁香久久婷婷综合图片| 久久久久久毛片免费播放| 国产亚洲色婷婷久久99精品91| 色综合久久久久久久久五月| 国产—久久香蕉国产线看观看| 亚洲精品白浆高清久久久久久| 国産精品久久久久久久| 久久久久人妻精品一区二区三区 | 久久综合久久美利坚合众国| 亚洲国产精品人久久| 青草国产精品久久久久久| 日韩影院久久| 国产毛片久久久久久国产毛片 | 中文字幕久久精品无码| 久久国产精品国语对白| 91精品国产91久久久久久蜜臀| 免费久久人人爽人人爽av| 亚洲国产日韩欧美综合久久| 99久久国产综合精品网成人影院| 亚洲精品无码久久千人斩| 久久久久av无码免费网| 色播久久人人爽人人爽人人片AV| 久久精品国产WWW456C0M| 久久综合久久综合久久| 久久99国产精品一区二区| 成人免费网站久久久| 久久精品国产第一区二区三区| 亚洲精品午夜国产va久久| 中文字幕无码av激情不卡久久| 国产—久久香蕉国产线看观看 | 久久精品国产99国产精品亚洲| 天天做夜夜做久久做狠狠|