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

            ACM___________________________

            ______________白白の屋
            posts - 182, comments - 102, trackbacks - 0, articles - 0
            <2010年9月>
            2930311234
            567891011
            12131415161718
            19202122232425
            262728293012
            3456789

            常用鏈接

            留言簿(24)

            隨筆分類(332)

            隨筆檔案(182)

            FRIENDS

            搜索

            積分與排名

            最新隨筆

            最新評論

            閱讀排行榜

            評論排行榜

            HDOJ HDU 1176 免費餡餅 ACM 1176 IN HDU

            Posted on 2010-08-05 14:02 MiYu 閱讀(714) 評論(0)  編輯 收藏 引用 所屬分類: C/C++ 、ACM ( DP )

            //MiYu原創, 轉帖請注明 : 轉載自 ______________白白の屋

            題目地址: 
                     http://acm.hdu.edu.cn/showproblem.php?pid=1176
            題目描述:
                     都說天上不會掉餡餅,但有一天gameboy正走在回家的小徑上,忽然天上掉下大把大把的餡餅。說來gameboy的人品實在是太好了,這餡餅別處都不掉,就掉落在他身旁的10米范圍內。餡餅如果掉在了地上當然就不能吃了,所以gameboy馬上卸下身上的背包去接。但由于小徑兩側都不能站人,所以他只能在小徑上接。由于gameboy平時老呆在房間里玩游戲,雖然在游戲中是個身手敏捷的高手,但在現實中運動神經特別遲鈍,每秒種只有在移動不超過一米的范圍內接住墜落的餡餅?,F在給這條小徑如圖標上坐標.
            為了使問題簡化,假設在接下來的一段時間里,餡餅都掉落在0-10這11個位置。開始時gameboy站在5這個位置,因此在第一秒,他只能接到4,5,6這三個位置中期中一個位置上的餡餅。問gameboy最多可能接到多少個餡餅?(假設他的背包可以容納無窮多個餡餅)

            很簡單的一道 DP 題目, 初看起來似乎很難, 但是自習分析,會發現 , 這其實就是

                                                      數塔 

                                             的一道變形題!!!!  
            狀態轉移方程 :
             

            pea[i-1][j] =  pea[i-1][j]  + max (   pea[i][j-1],  pea[i][j] ,  pea[i][j+1] ) ;

            下面照例是貼代碼 :
            //MiYu原創, 轉帖請注明 : 轉載自 ______________白白の屋

            #include 
            <iostream>
            using std::max;
            const int MAX_NUM = 100002;
            int pea[MAX_NUM][11];
            void setZero ( int t )
            {
                 
            for ( int i = 0; i <= t; ++i )
                 {
                      
            for ( int j = 0; j != 11++ j )
                      {
                          pea[i][j] 
            = 0;
                      }
                 }
            }
            int main ()
            {
                
            int N,temp = MAX_NUM;
                
            while ( scanf ("%d",&N), N != 0 )
                {
                      setZero ( temp );
                      
            int pos,sec;
                      
            int maxSec = 0;
                      
            for ( int i = 0; i != N; ++i )
                      {
                           scanf ( 
            "%d%d",&pos,&sec ) ;
                           pea[sec][pos] 
            ++ ;
                           
            if ( maxSec < sec )
                           {
                                maxSec 
            = sec;
                           }
                      } 
                      temp 
            = maxSec;
                     
            for ( int i = maxSec; i != 0  ; -- i )
                     {
                          
            for ( int j = 0; j != 11++ j )
                          {
                               
            if ( j == 0 )
                               {
                                    pea[i
            -1][j] += max ( pea[i][0] , pea[i][1] );
                               }
                               
            else if ( j == 10 ) 
                               {
                                    pea[i
            -1][j] += max ( pea[i][9], pea[i][10] );  
                               }
                               
            else
                               {
                                    pea[i
            -1][j] += max ( max ( pea[i][j-1], pea[i][j] ), pea[i][j+1] );
                               }   
                         }
                     }    
                     printf ( 
            "%d\n",pea[0][5] );  
                }
                
            return 0
            }

            久久免费的精品国产V∧| 天堂久久天堂AV色综合| 97久久综合精品久久久综合| 久久久久久精品无码人妻| 国产三级精品久久| 亚洲国产精品婷婷久久| 国产美女久久久| 色综合久久精品中文字幕首页| 亚洲av日韩精品久久久久久a| 久久精品aⅴ无码中文字字幕不卡| 久久综合九色综合久99| 亚洲国产成人精品无码久久久久久综合 | 69国产成人综合久久精品| 无码久久精品国产亚洲Av影片| 久久久久亚洲AV成人网人人网站| 久久综合给合综合久久| 亚洲日本va午夜中文字幕久久| 久久人人爽人人人人爽AV| 亚洲愉拍99热成人精品热久久| 久久一日本道色综合久久| 国产精品美女久久久m| 国产69精品久久久久99| 日本高清无卡码一区二区久久| 欧美亚洲国产精品久久高清 | 久久国产综合精品五月天| 亚洲成av人片不卡无码久久| 中文字幕人妻色偷偷久久 | 久久久久久久综合综合狠狠| 亚洲午夜福利精品久久| 无码国内精品久久人妻| 国产人久久人人人人爽| 欧美激情精品久久久久久| 久久国产劲爆AV内射—百度| 好久久免费视频高清| 久久综合九色综合欧美就去吻| 蜜臀av性久久久久蜜臀aⅴ | 麻豆av久久av盛宴av| 久久成人影院精品777| 久久精品国产乱子伦| 国产福利电影一区二区三区久久久久成人精品综合 | 久久久久国产精品人妻 |