總時間限制: 1000ms 記憶體限制: 65536kb
描述 如下所示的由正整數數字構成的三角形:
7 3 8
8 1 0
2 7 4 4
4 5 2 6 5
從三角形的頂部到底部有很多條不同的路徑。對於每條路徑,把路徑上面的數加起來可以得到乙個和,和最大的路徑稱為最佳路徑。你的任務就是求出最佳路徑上的數字之和。
注意:路徑上的每一步只能從乙個數走到下一層上和它最近的下邊(正下方)的數或者右邊(右下方)的數。
輸入 第一行為三角形高度100>=h>=1,同時也是最底層邊的數字的數目。
從第二行開始,每行為三角形相應行的數字,中間用空格分隔。
輸出 最佳路徑的長度數值。
樣例輸入
5 7
3 8
8 1 0
2 7 4 4
4 5 2 6 5
或 1
8 樣例輸出
30 或
8用d的第n行代替maxsum,節省空間,時間複雜度不變,用乙個maxsum[100]就行
#include
#include
using
namespace
std;
int d[101][101];
int n;
int * maxsum;
int main()
}maxsum=d[n];//指向n行
for(int i=n-1;i>=1;i--)
cout
<1]0;}
21 三角形最佳路徑問題
描述 如下所示的由正整數數字構成的三角形 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 從三角形的頂部到底部有很多條不同的路徑。對於每條路徑,把路徑上面的數加起來可以得到乙個和,和最大的路徑稱為最佳路徑。你的任務就是求出最佳路徑上的數字之和。注意 路徑上的每一步只能從乙個數走到下一層上...
三角形最佳路徑問題
總時間限制 1000ms 記憶體限制 65536kb 描述如下所示的由正整數數字構成的三角形 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 從三角形的頂部到底部有很多條不同的路徑。對於每條路徑,把路徑上面的數加起來可以得到乙個和,和最大的路徑稱為最佳路徑。你的任務就是求出最佳路徑上的數...
NOIP 三角形最佳路徑問題
如下所示的由正整數數字構成的三角形 73 8 8 1 0 2 7 4 4 4 5 2 6 5 從三角形的頂部到底部有很多條不同的路徑。對於每條路徑,把路徑上面的數加起來可以得到乙個和,和最大的路徑稱為最佳路徑。你的任務就是求出最佳路徑上的數字之和。注意 路徑上的每一步只能從乙個數走到下一層上和它最近...