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

            Drolca

            Apologize To Drolca
            隨筆 - 28, 文章 - 1, 評(píng)論 - 6, 引用 - 0
            數(shù)據(jù)加載中……

            Topcoder SRM 538 1050P

             1#include <iostream>
             2#include <vector>
             3#include <string>
             4using namespace std;
             5
             6#define madd(a,b) a=(a+b)%MOD
             7
             8const int MOD=1000000007;
             9const int MAXC=55, MAXH=75, MAXW=10, MAXB=15;
            10long g[MAXC], Comb[MAXC][MAXC];
            11int dp[MAXW][MAXB][MAXC][MAXH][MAXW][2];
            12
            13class SkewedPerspective
            14{
            15
            16public:
            17    int countThem(vector <int> cubes, int B, int w)
            18    {
            19        int n=cubes.size(), total=0;
            20        int i, j, k;
            21        for(i=0; i<n; i++) total+=cubes[i];
            22        
            23        for(i=0; i<=total; i++)
            24            for(j=0; j<=i; j++)
            25                Comb[i][j]=(j?(Comb[i-1][j]+Comb[i-1][j-1])%MOD:1);
            26        g[0]=1;
            27        for(i=0; i<n; i++)
            28            for(j=total; j; j--)
            29                for(k=1; k<=&& k<=cubes[i]; k++)
            30                    g[j]=(g[j]+g[j-k]*Comb[j][k])%MOD;
            31
            32        long ans=0;
            33        dp[1][0][0][0][0][0]=1;
            34        for(int tower=1; tower<=w; tower++)for(int black=0; black<=B; black++)
            35        for(int color=0; color<=total; color++)for(int need=0; need<=total+black*2; need++)
            36        for(int needOdd=0; needOdd<=tower; needOdd++)for(int lastBlack=0; lastBlack<2; lastBlack++)
            37        {
            38            int x=dp[tower][black][color][need][needOdd][lastBlack];
            39            if(!x)continue;
            40            //get result
            41            if(black+color>0 && (B-black)*2+total-color>=need && total-color>=needOdd)
            42                ans=(ans+g[color]*x)%MOD;
            43            //put colored
            44            madd(dp[tower][black][color+1][need][needOdd][0], x);
            45            if(lastBlack) continue;
            46            //put black
            47            int layer=black*2+color-(tower-1);
            48            for(int blackSize=1; blackSize+black*2<=B*2; blackSize++)
            49                if(blackSize%2==0)
            50                    madd(dp[tower][black+blackSize/2][color][need][needOdd][1], x);
            51                else
            52                {
            53                    if(!layer && blackSize==1continue;  //"b1bbbb"
            54                    int needNow=(layer?layer-1:layer+1);
            55                    if(need+needNow<=total+B*2)
            56                        madd(dp[tower+1][black+(blackSize+1)/2][color][need+needNow][needOdd+needNow%2][1], x);
            57                }

            58
            59        }

            60        return int(ans);
            61    }

            62}
            ;
            63
            64int main()
            65{
            66    SkewedPerspective a;
            67    int cubes[]={110};
            68    vector<int> t(cubes, cubes+3);
            69
            70    cout<<a.countThem(t, 12)<<endl;
            71    return 0;
            72}

            73

            posted on 2012-04-09 17:30 Drolca 閱讀(234) 評(píng)論(0)  編輯 收藏 引用


            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


            久久99精品九九九久久婷婷| 青青草原综合久久大伊人| 国产精品久久久久久福利漫画| 国产精品久久久福利| 日日狠狠久久偷偷色综合96蜜桃| 午夜精品久久久久久影视riav| 久久久老熟女一区二区三区| 国产农村妇女毛片精品久久| 久久夜色精品国产噜噜噜亚洲AV| 久久福利片| 久久青青草原综合伊人| 精品久久久久久无码不卡| 一本色道久久88加勒比—综合| 久久久久久久波多野结衣高潮| 51久久夜色精品国产| 久久亚洲美女精品国产精品| 久久久久久无码国产精品中文字幕| 久久99国产乱子伦精品免费| 香蕉久久AⅤ一区二区三区| 91久久精品国产成人久久| 久久天堂AV综合合色蜜桃网| 狠狠色婷婷久久综合频道日韩 | 麻豆亚洲AV永久无码精品久久| 久久九九免费高清视频| 99久久99久久精品国产片果冻 | 久久久久18| 久久青青国产| 久久久人妻精品无码一区| 精品久久人人妻人人做精品| 久久精品国产99国产精偷| 国产高潮国产高潮久久久| 无码人妻久久一区二区三区免费丨| 久久久久亚洲AV无码专区首JN| 香蕉99久久国产综合精品宅男自 | 99久久国产免费福利| 久久福利青草精品资源站| 国产精品久久久天天影视| 国产成人精品久久免费动漫 | 一本大道久久香蕉成人网| 伊人久久大香线蕉精品不卡| 人妻无码αv中文字幕久久琪琪布|