青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

coreBugZJ

此 blog 已棄。

EOJ 1823 數塔II (動態規劃入門)

  1/*
  2EOJ 1823 數塔II
  3
  4
  5----問題描述:
  6
  7有一個由正整數組成的三角形,
  8第一行只有一個數,
  9除了最下行之外每個數的左下方和右下方各有一個數,
 10
 11如下圖所示:
 12
 13         1
 14       3   2
 15     4  10   1
 16   4   3   2  20
 17
 18從第一行的數開始,除了某一次可以走到下一行的任意位置外,
 19每次都只能左下或右下走一格,
 20直到走到最下行,
 21把沿途經過的數全部加起來,如何走,使得這個和盡量大?
 22
 23
 24----輸入:
 25
 26輸入數據首先包括一個整數 C,表示測試實例的個數,
 27每個測試實例的第一行是一個整數 N (1 <= N <= 500),表示數塔的高度,
 28接下來用 N 行數字表示數塔,其中第 i 行有 i 個整數,且所有的整數均在區間 [ 0, 99 ] 內。
 29
 30
 31----輸出:
 32
 33對于每個測試實例,輸出可能得到的最大和。
 34
 35
 36----樣例輸入:
 37
 381
 394
 401
 413 2
 424 10 1
 434 3 2 20
 44
 45
 46----樣例輸出:
 47
 4834
 49
 50
 51*/

 52
 53
 54/************************************************************************
 55
 56----方案三:
 57
 58方案二的空間優化,
 59實際數據范圍只有 25 ;
 60使用滾動數組。
 61
 62*/

 63/*
 64#include <stdio.h>
 65
 66#define  L  25
 67
 68int a[L][L], f[L], h[L];
 69
 70int main(){
 71        int td, n, i, j, ans, tmp;
 72        scanf( "%d", &td );
 73        while( td-- ){
 74                scanf( "%d", &n );
 75                for( i=1; i<=n; ++i ){
 76                        for( j=1; j<=i; ++j ){
 77                                scanf( "%d", &a[i][j] );
 78                        }
 79                }
 80
 81                for( j=1; j<=n; ++j ){
 82                        f[j] = h[j] = a[n][j];
 83                }
 84                for( i=n-1; i>0; --i ){
 85                        tmp = h[i+1];
 86                        for( j=1; j<=i; ++j ){
 87                                tmp = ( tmp < h[j] ? h[j] : tmp );
 88                        }
 89                        for( j=1; j<=i; ++j ){
 90                                h[j] = a[i][j] + ( h[j] > h[j+1] ? h[j] : h[j+1] );
 91                                f[j] = a[i][j] + ( f[j] > f[j+1] ? f[j] : f[j+1] );
 92                                f[j] = ( (tmp+a[i][j]) > f[j] ? (tmp+a[i][j]) : f[j] );
 93                        }
 94                }
 95
 96                ans = f[1];
 97                printf( "%d\n", ans );
 98        }
 99        return 0;
100}
101*/

102
103
104/************************************************************************
105
106----方案二
107
108令 a[i][j] 表示第 i 行第 j 個數字,(1 <= j <= i <= n);
109令 h[i][j] 表示從 a[i][j] 開始走到最后一行所能得到的最大和,其中每次都只能左下或右下走一格;
110令 f[i][j] 表示從 a[i][j] 開始走到最后一行所能得到的最大和,其中某一次走到了下一行的任意位置;
111
112
113h[i][j] = a[i][j] + max( h[i+1][j], h[i+1][j+1] )
114f[i][j] = a[i][j] + max( f[i+1][j], f[i+1][j+1], h[i+1][k] )  其中 1 <= k <= i+1
115
116結果為 f[1][1]。
117
118*/

119/*
120#include <stdio.h>
121
122#define  L  503
123
124int a[L][L], f[L][L], h[L][L];
125
126int main(){
127        int td, n, i, j, ans, tmp;
128        scanf( "%d", &td );
129        while( td-- ){
130                scanf( "%d", &n );
131                for( i=1; i<=n; ++i ){
132                        for( j=1; j<=i; ++j ){
133                                scanf( "%d", &a[i][j] );
134                        }
135                }
136
137                for( j=1; j<=n; ++j ){
138                        f[n][j] = h[n][j] = a[n][j];
139                }
140                for( i=n-1; i>0; --i ){
141                        tmp = h[i+1][i+1];
142                        for( j=1; j<=i; ++j ){
143                                tmp = ( tmp < h[i+1][j] ? h[i+1][j] : tmp );
144                        }
145                        for( j=1; j<=i; ++j ){
146                                h[i][j] = a[i][j] + ( h[i+1][j] > h[i+1][j+1] ? h[i+1][j] : h[i+1][j+1] );
147                                f[i][j] = a[i][j] + ( f[i+1][j] > f[i+1][j+1] ? f[i+1][j] : f[i+1][j+1] );
148                                f[i][j] = ( (tmp+a[i][j]) > f[i][j] ? (tmp+a[i][j]) : f[i][j] );
149                        }
150                }
151
152                ans = f[1][1];
153                printf( "%d\n", ans );
154        }
155        return 0;
156}
157*/

158
159
160/************************************************************************
161
162----方案一
163
164令 a[i][j] 表示第 i 行第 j 個數字,(1 <= j <= i <= n);
165令 h[i][j] 表示從第一行的數開始走到 a[i][j] 所能得到的最大和,其中每次都只能左下或右下走一格;
166令 f[i][j] 表示從 a[i][j] 開始走到最后一行所能得到的最大和,每次都只能左下或右下走一格;
167
168
169h[i][j] = a[i][j] + max( h[i-1][j-1], h[i-1][j] )
170f[i][j] = a[i][j] + max( f[i+1][j], f[i+1][j+1] )
171
172結果為 max( h[i][j], f[i+1][k] ) 。
173
174*/

175/*
176#include <stdio.h>
177
178#define  L  503
179
180int a[L][L], f[L][L], h[L][L];
181
182int main(){
183        int td, n, i, j, k, ans;
184        scanf( "%d", &td );
185        while( td-- ){
186                scanf( "%d", &n );
187                for( i=1; i<=n; ++i ){
188                        for( j=1; j<=i; ++j ){
189                                scanf( "%d", &a[i][j] );
190                        }
191                }
192
193                for( j=1; j<=n; ++j ){
194                        f[n][j] = a[n][j];
195                }
196                for( i=n-1; i>0; --i ){
197                        for( j=1; j<=i; ++j ){
198                                f[i][j] = a[i][j] + ( f[i+1][j] > f[i+1][j+1] ? f[i+1][j] : f[i+1][j+1] );
199                        }
200                }
201
202                h[1][1] = a[1][1];
203                for( i=2; i<=n; ++i ){
204                        h[i][1] = a[i][1] + h[i-1][1];
205                        h[i][i] = a[i][i] + h[i-1][i-1];
206                        for( j=2; j<i; ++j ){
207                                h[i][j] = a[i][j] + ( h[i-1][j-1] > h[i-1][j] ? h[i-1][j-1] : h[i-1][j] );
208                        }
209                }
210
211                ans = f[1][1];
212                for( i=1; i<n; ++i ){
213                        for( j=1; j<=i; ++j ){
214                                for( k=i+1; k>0; --k ){
215                                        if( h[i][j] + f[i+1][k] > ans ){
216                                                ans = h[i][j] + f[i+1][k];
217                                        }
218                                }
219                        }
220                }
221
222                printf( "%d\n", ans );
223        }
224        return 0;
225}
226*/

227

posted on 2012-03-16 12:02 coreBugZJ 閱讀(853) 評論(0)  編輯 收藏 引用 所屬分類: ACMAlgorithm課內作業

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            国产精品日韩精品| 亚洲片区在线| 亚洲国产高清自拍| …久久精品99久久香蕉国产| 激情久久婷婷| 亚洲精品网站在线播放gif| 亚洲精品偷拍| 一区二区精品在线观看| 亚洲一区日韩在线| 久久精品男女| 欧美激情一级片一区二区| 亚洲日韩第九十九页| 一区二区免费在线视频| 午夜精品一区二区在线观看| 久久久久九九九| 欧美精品1区2区| 国产精品日韩欧美一区| 伊人春色精品| 一区二区冒白浆视频| 欧美中文字幕视频在线观看| 欧美成人福利视频| 亚洲一区二区免费| 久久久午夜电影| 欧美色综合网| 亚洲高清不卡| 羞羞答答国产精品www一本| 欧美成人精品h版在线观看| 99ri日韩精品视频| 美脚丝袜一区二区三区在线观看 | 亚洲欧洲在线看| 亚洲在线一区二区| 欧美国产大片| 欧美一区二区成人| 国产精品国产一区二区 | 欧美在线二区| 亚洲国产视频一区| 欧美在线亚洲在线| 国产精品久久激情| 亚洲国产专区| 亚洲国产精品一区制服丝袜| 亚洲国产一区二区三区高清 | 日韩午夜视频在线观看| 久久精品国产亚洲a| 一区二区三区四区国产| 欧美成人一区二区在线| 亚洲成色777777在线观看影院| 亚洲欧美日韩高清| 亚洲精品免费在线观看| 裸体素人女欧美日韩| 韩国成人理伦片免费播放| 校园春色国产精品| 亚洲一区二区三区精品在线观看| 欧美日本在线播放| 亚洲人成人一区二区在线观看| 久久岛国电影| 欧美一区二区三区播放老司机 | 国产精品久久网| 在线一区二区日韩| 日韩午夜黄色| 国产精品成人免费精品自在线观看| 99精品国产在热久久婷婷| 欧美激情一区二区三区在线视频观看 | 亚洲老板91色精品久久| 欧美电影免费观看| 免费成人小视频| 亚洲日本国产| 亚洲精品视频二区| 欧美三级网页| 欧美一区二区视频在线观看2020| 亚洲欧美在线播放| 激情久久一区| 亚洲国产一区二区三区a毛片| 欧美成人中文| 亚洲午夜一区二区| 亚洲欧美国产毛片在线| 狠狠干成人综合网| 亚洲盗摄视频| 欧美网站在线观看| 久久久久se| 久久综合伊人77777蜜臀| 99国产精品久久久久久久成人热| 亚洲最新色图| 国内成人精品2018免费看| 欧美国产视频在线| 欧美日韩中文| 久久最新视频| 欧美三级免费| 久久综合婷婷| 欧美色图一区二区三区| 女生裸体视频一区二区三区| 国产麻豆91精品| 久久综合九色欧美综合狠狠| 欧美激情亚洲激情| 欧美在线高清视频| 牛牛国产精品| 欧美一区二区三区精品电影| 免费看亚洲片| 欧美在线啊v一区| 欧美黄色一级视频| 久久精视频免费在线久久完整在线看| 另类成人小视频在线| 亚洲一级高清| 免费成人高清| 久久精品夜色噜噜亚洲a∨| 欧美护士18xxxxhd| 久久久爽爽爽美女图片| 欧美日韩第一页| 久久在线91| 国产精品毛片a∨一区二区三区| 欧美黄色成人网| 国产亚洲欧美一区二区三区| 亚洲美女在线国产| 亚洲国产日韩欧美在线动漫| 午夜精品一区二区三区在线视 | 欧美色大人视频| 欧美波霸影院| 国产在线播放一区二区三区| 亚洲视频1区| 在线亚洲自拍| 欧美激情综合亚洲一二区| 玖玖精品视频| 国产综合久久| 欧美在线视频一区二区三区| 欧美一区二区三区免费视| 欧美午夜精品久久久久免费视| 亚洲欧洲日韩在线| 亚洲日本在线观看| 久久久一区二区三区| 久久久水蜜桃av免费网站| 国产欧美在线看| 午夜精品久久久久久久99黑人| 先锋影音国产精品| 国产精品国产精品| 亚洲小说欧美另类婷婷| 亚洲一区欧美| 欧美午夜不卡在线观看免费| 99这里有精品| 亚洲午夜成aⅴ人片| 欧美三区美女| 亚洲视频axxx| 久久成人免费电影| 国产亚洲一级高清| 久久精品电影| 欧美国产日产韩国视频| 亚洲人成网在线播放| 欧美精品一区二区视频| 99在线精品视频| 欧美伊人精品成人久久综合97 | 欧美国产日韩精品| 亚洲精品欧洲精品| 国产曰批免费观看久久久| 蜜臀91精品一区二区三区| 亚洲国产日本| 欧美日韩亚洲综合在线| 亚洲香蕉在线观看| 久久精品亚洲精品| 亚洲电影在线观看| 欧美激情综合五月色丁香小说| 日韩午夜电影av| 久久av一区二区三区亚洲| 精品成人在线观看| 欧美女主播在线| 亚洲欧洲99久久| 欧美粗暴jizz性欧美20| 亚洲私人影院| 激情久久五月天| 欧美日韩精品欧美日韩精品一| 亚洲综合欧美| 欧美xart系列在线观看| 在线一区二区三区做爰视频网站| 国产精品亚洲综合| 麻豆乱码国产一区二区三区| 一区二区三区精密机械公司| 久久久久久伊人| 这里只有视频精品| 在线观看亚洲a| 国产精品久久久久久久电影| 久久一区中文字幕| 亚洲视频精品| 亚洲国产精品传媒在线观看 | 亚洲欧美国产日韩天堂区| 黑人一区二区| 欧美午夜宅男影院| 蜜臀99久久精品久久久久久软件 | 亚洲国产美国国产综合一区二区| 亚洲尤物视频网| 亚洲人成在线影院| 国内精品久久久久影院优| 欧美视频在线观看| 欧美不卡在线| 久久免费视频在线| 欧美一区二粉嫩精品国产一线天| 一本色道久久综合一区| 欧美激情日韩| 蜜臀va亚洲va欧美va天堂| 久久黄色级2电影| 欧美一区二区精品久久911| 日韩视频一区二区在线观看 | 亚洲男女自偷自拍| 一卡二卡3卡四卡高清精品视频|