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

            gzwzm06

              C++博客 :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
              1 隨筆 :: 52 文章 :: 17 評(píng)論 :: 0 Trackbacks
              1#include <cstdio>
              2#include <memory.h>
              3
              4const int SIZE = 1001;
              5
              6int N, arr[SIZE], dp[SIZE];
              7
              8int mark;
              9
             10void DFS( const int& s, const int& banker, const int& mine, const int& bGet, const int& mGet, const int& state )
             11{
             12    if ( banker > 21 )
             13    {
             14        if ( dp[s - 1] < mark + 1 )
             15            dp[s - 1] = mark + 1;
             16    }
             17    else if ( mine > 21 )
             18    {
             19        if ( dp[s - 1] < mark )
             20            dp[s - 1] = mark;
             21    }
             22    else if ( s == N || !( bGet | mGet ) )
             23    {
             24        if ( banker >= mine )
             25        {
             26            if ( dp[s - 1] < mark )
             27                dp[s - 1] = mark;
             28        }
             29        else if ( dp[s - 1] < mark + 1 )
             30        {
             31            dp[s - 1] = mark + 1;
             32        }
             33    }
             34    else if ( state == 1 )
             35    {
             36        if ( banker < 16 )
             37        {
             38            if ( mGet )
             39                DFS( s + 1, banker + arr[s], mine, bGet, mGet, 0 );
             40            else
             41                DFS( s + 1, banker + arr[s], mine, bGet, 0, 1 );
             42        }
             43        else {
             44            DFS( s, banker, mine, 0, mGet, 0 );
             45        }
             46    }
             47    else
             48    {
             49        if ( !bGet && banker < mine )
             50        {
             51            if ( dp[s - 1] < mark + 1 )
             52                dp[s - 1] = mark + 1;
             53        }
             54        else 
             55        {
             56            if ( bGet )
             57            {
             58                DFS( s, banker, mine, 1, 0, 1 );
             59                DFS( s + 1, banker, mine + arr[s], 1, 1, 1 );
             60            }
             61            else
             62            {
             63                DFS( s, banker, mine, 0, 0, 1 );
             64                DFS( s + 1, banker, mine + arr[s], 0, 1, 1 );
             65            }
             66        }
             67
             68    }
             69}
             70
             71int main()
             72{
             73    freopen("1.txt", "r", stdin);
             74
             75    int i;
             76
             77    while ( scanf("%d", &N), N != 0 )
             78    {
             79        for ( i = 0; i < N; ++i )
             80        {
             81            scanf("%d", &arr[i]);
             82        }
             83
             84        memset( dp, 0xff, sizeof(dp) );
             85
             86
             87        mark = 0;
             88        DFS( 4, arr[0] + arr[2], arr[1] + arr[3], 1, 1, 1 );
             89
             90        for ( i = 3; i < N - 5; ++i )
             91        {
             92            if ( dp[i] != -1 )
             93            {
             94                mark = dp[i];
             95
             96                DFS( i + 5, arr[i + 1] + arr[i + 3], arr[i + 2] + arr[i + 4], 1, 1, 1 );
             97            }
             98        }
             99
            100        int ans = 0;
            101
            102        for ( i = 0; i < SIZE; ++i )
            103        {
            104            if ( dp[i] > ans )
            105                ans = dp[i];
            106        }
            107
            108        printf("%d\n", ans);
            109
            110    }
            111
            112    return 0;
            113}
            posted on 2009-05-20 15:53 閱讀(238) 評(píng)論(2)  編輯 收藏 引用 所屬分類: DP

            評(píng)論

            # re: 7th GDCPC Problem G: Black Jack 2010-04-22 12:40 lambda
            同學(xué)我拿你這個(gè)代碼一交得個(gè)wa。你檢查一下吧。?;蛘呗?lián)系我lambda2fei@qq.com。  回復(fù)  更多評(píng)論
              

            # re: 7th GDCPC Problem G: Black Jack 2010-04-22 21:30
            因?yàn)榇a到現(xiàn)在都沒(méi)有測(cè)試過(guò)官方數(shù)據(jù),只是做個(gè)記錄,不知道在什么地方可以測(cè)試?  回復(fù)  更多評(píng)論
              

            久久久久久九九99精品| 久久国产成人午夜AV影院| 国产精品成人久久久| 无码人妻精品一区二区三区久久久| 亚洲AV无一区二区三区久久| 久久精品无码专区免费青青| 久久综合综合久久狠狠狠97色88| 久久性生大片免费观看性| 久久综合亚洲鲁鲁五月天| 久久香蕉综合色一综合色88| 青春久久| 久久久久久久尹人综合网亚洲| 麻豆久久| 国产精品亚洲综合专区片高清久久久 | 一本久久精品一区二区| 久久青青草原精品国产| 国产福利电影一区二区三区久久老子无码午夜伦不 | 国产69精品久久久久APP下载| 99久久国产热无码精品免费| 国产精品久久久久久久午夜片| 久久婷婷五月综合国产尤物app| 国产午夜电影久久| 久久精品国产网红主播| 手机看片久久高清国产日韩| 69国产成人综合久久精品| 一本一本久久A久久综合精品| 久久久精品视频免费观看| 99久久99久久精品免费看蜜桃| 国产亚洲精品久久久久秋霞| 久久无码一区二区三区少妇| 93精91精品国产综合久久香蕉| 99久久精品午夜一区二区| 青草国产精品久久久久久| 2021国产精品久久精品| 久久91精品国产91久| 伊人久久大香线蕉AV一区二区| 婷婷久久综合九色综合九七| 色8激情欧美成人久久综合电| 日日狠狠久久偷偷色综合免费| 久久99精品久久久久久噜噜| 久久最新精品国产|