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

            我希望你是我獨家記憶

            一段永遠封存的記憶,隨風而去
            posts - 263, comments - 31, trackbacks - 0, articles - 3
               :: 首頁 :: 新隨筆 ::  :: 聚合  :: 管理

            URAL——1031——(DP)

            Posted on 2008-08-20 14:57 Hero 閱讀(201) 評論(0)  編輯 收藏 引用 所屬分類: 代碼如詩--ACM
             1 //    URAL  1031    C++    Accepted    0.015    377 KB
             2 
             3 //DP--只有3中狀態的DP--posi[][]用于預處理
             4 //1. 起點可以大于終點的--特別要注意
             5 //2. 在DP的時候要注意posi[i][j]==i(自身)的時候的情況
             6 
             7 #include <stdio.h>
             8 #include <stdlib.h>
             9 #include <string.h>
            10 typedef unsigned int unint ;
            11 typedef unsigned long long unllong ;
            12 const unint INF = 30e8 ;
            13 
            14 const int size = 10010 ;
            15 int len[3] ;//收費長度標準
            16 int cost[3] ;//對應的費用
            17 
            18 int posi[size][3] ;//記錄當前狀態的三個前序狀態位置
            19 unllong dp[size] ;//記錄當前位置的最優值
            20 
            21 int inn ;//車站的個數
            22 int sn, en ;//起點--終點
            23 int dist[size] ;
            24 
            25 void input()
            26 {
            27     scanf( "%d %d %d"&len[0], &len[1], &len[2] ) ;
            28     scanf( "%d %d %d"&cost[0], &cost[1], &cost[2] ) ;
            29 
            30     scanf( "%d"&inn ) ; scanf( "%d %d"&sn, &en ) ; 
            31     if( sn > en ) { int temp = sn ; sn = en ; en = temp ; }
            32     forint i=2; i<=inn; i++ ) scanf( "%d"&dist[i] ) ;
            33 }
            34 
            35 void process()
            36 {
            37     forint way=0; way<3; way++ )
            38     {//預處理--找到當前狀態i的上一個狀態位置
            39         int curn = en-1 ;//指針
            40         forint i=en; i>sn; i-- ) 
            41         {
            42             while( dist[i]-dist[curn]<=len[way] && curn>=sn ) curn-- ;
            43             posi[i][way] = curn+1 ;
            44         }
            45     }
            46 
            47     dp[sn] = 0 ;
            48     forint i=sn+1; i<=en; i++ )
            49     {
            50         dp[i] = size*INF ;
            51         forint j=0; j<3; j++ ) 
            52         {
            53             if/*posi[i][j] != i &&*/ dp[i] > dp[posi[i][j]] + cost[j] ) 
            54                 dp[i] = dp[posi[i][j]] + cost[j] ;
            55         }
            56     }
            57 }
            58 
            59 void output()
            60 {
            61     printf( "%llu\n", dp[en] ) ;
            62 }
            63 
            64 int main()
            65 {
            66     input() ;
            67 
            68     process() ;
            69 
            70     output() ;
            71 
            72     return 0 ;
            73 }

            亚洲欧洲中文日韩久久AV乱码| 综合久久国产九一剧情麻豆| 91精品国产91热久久久久福利| 国产成人无码精品久久久免费| 欧美麻豆久久久久久中文| 国产69精品久久久久APP下载| 青草国产精品久久久久久| 国产精品热久久无码av| 国产亚洲精久久久久久无码77777 国产亚洲精品久久久久秋霞 | 久久午夜羞羞影院免费观看| 久久久青草久久久青草| 久久精品亚洲AV久久久无码| 91麻豆精品国产91久久久久久| 久久亚洲日韩看片无码| 久久国产高清一区二区三区| 久久午夜伦鲁片免费无码| 久久久国产亚洲精品| 久久国产成人午夜aⅴ影院 | 久久精品aⅴ无码中文字字幕不卡 久久精品aⅴ无码中文字字幕重口 | 四虎国产精品成人免费久久| 久久精品草草草| 99久久人妻无码精品系列| 久久精品国产AV一区二区三区| 亚洲国产成人久久精品99| 久久精品国产福利国产琪琪| 亚洲综合精品香蕉久久网97| 97久久天天综合色天天综合色hd| 久久婷婷成人综合色综合| 久久亚洲精品人成综合网| 色偷偷久久一区二区三区| 蜜臀av性久久久久蜜臀aⅴ | 久久er国产精品免费观看8| 久久99精品久久久久久| 色偷偷888欧美精品久久久| 伊人久久免费视频| 久久99久久成人免费播放| 久久久久久国产精品无码下载 | 国产精品久久国产精品99盘 | 国内高清久久久久久| 久久精品中文字幕一区| 无码精品久久久天天影视|