tyvj數字三角形

2021-06-27 20:12:59 字數 3246 閱讀 6741

示出了乙個數字三角形。 請編乙個程式計算從頂至底的某處的一條路

徑,使該路徑所經過的數字的總和最大。

每一步可沿左斜線向下或右斜線向下走;

1《三角形行數<25;

三角形中的數字為整數<1000;

第一行為n,表示有n行

後面n行表示三角形每條路的路徑權

路徑所經過的數字的總和最大的答案

7 3 8 

8 1 0 

2 7 4 4 

4 5 2 6 5

30
複製過來自配邊框下劃線我也是醉了。。。。
動歸的題目,貌似很經典很基礎~我是從下往上每次取最大的然後加成和,最後(1,1)所在的便是最大路徑和。
**如下:
#include #include #include #define maxn 1000

using namespace std;

int a[maxn][maxn], b[maxn][maxn]; //a用來存原陣列,b用來存和

int main()

}for(int i=1; i<=n; i++)

for(int i=n-1; i>=1; i--)

else

b[i][j] = b[i+1][j] + a[i][j];}}

printf("%d", b[1][1]);

return 0;

}

數字三角形

要求走到最後mod 100最大

第1行n,表示n行 <=25

第2到n+1行為每個的權值

mod 100最大值

2 1 

99 98

99

默默地說。。有一種被巢狀的趕腳。。。。

其實就只有這個沒太看懂題目,簡短有力啊,都把我整蒙了。。。直接貼**好了。。。

#include int map[30][30], n, max = 0, m[30][30];

int dfs(int n, int m, int add)

else if(n < n) }

int main()

dfs(0, 0, 0);

printf("%d\n", max);

return 0;

}

數字三角形必須經過某乙個點,使之走的路程和最大

第1行n,表示n行 <=25

第2到n+1行為每個的權值

程式必須經過n div 2,n div 2這個點

最大值

1 1

2

做了數字三角形1之後,這道就很好做啦,只要想一想三角形和必經過的一點之間的關係,把經過點的  

下面縮小成乙個小三角形就ok啦

eg:4行的三角形   (2,2)點為必須經過的,即下面紅色的數字~三角形裡面紫色的部分就是經過2後

可以取到的數字,而綠色的就是必須要取到的才能經過2~

形成的三角形:                        陣列中的儲存狀況:

1                               1

1      

2                           1    

21      

23                      1     2     3

1      

234                 1     2     3     4

**:

#include #include #include #define maxn 1000

using namespace std;

int a[maxn][maxn], b[maxn][maxn]; //a存原始三角形 , b存和

int main()

}for(int i=n; i>=1; i--)

for(int i=n-1; i>=n/2; i--) //注意必經過的點是n/2,

else

b[i][j] = b[i+1][j] + a[i][j];}}

for(int i=n/2-1; i>=1; i--)

printf("%d\n", b[1][1]);

return 0;

}

數字三角形必須經過某乙個點,使之走的路程和最大

第1行n,表示n行 <=25

第2到n+1行為每個的權值

第n+2行為兩個數x,y表示必須經過的點

最大值

1 1 

1 1

2

和上面的差不太多,就是需要考慮上下分別用動歸~

**:

#include #include #include #define maxn 1000

using namespace std;

int a[maxn][maxn], b[maxn][maxn], c[maxn][maxn];

int main()

}int x, y;

scanf("%d%d", &x, &y);

for(int i=n; i>=x; i--) //下三角

}for(int i=1; i<=x; i++) //上三角

}int result = b[x][y] + c[x][y] - a[x][y]; //這個a[x][y]加了兩次,要減掉~

printf("%d\n", result);

return 0;

}

對了~~merry christmas!!!

*<<<<+  

>_<嘻嘻~~

數字三角形

題目描述 示出了乙個數字三角形。請編乙個程式計算從頂至底的某處的一條路 徑,使該路徑所經過的數字的總和最大。每一步可沿左斜線向下或右斜線向下走 1 三角形行數 25 三角形中的數字為整數 1000 輸入第一行為n,表示有n行 後面n行表示三角形每條路的路徑權 輸出路徑所經過的數字的總和最大的答案 樣...

數字三角形

description 有如下所示的數塔,要求從頂層走到底層,若每一步只能走到相鄰的結點,則經過的結點的數字之和最大是多少?input 輸入資料首先包括乙個整數c,表示測試例項的個數,每個測試例項的第一行是乙個整數n 1 n 100 表示數塔的高度,接下來用n行數字表示數塔,其中第i行有個i個整數,...

數字三角形

3 8 8 1 0 2 7 4 4 4 5 2 6 5 上圖給出了乙個數字三角形。從三角形的頂部到底部有很多條不同的路徑。對於每條路徑,把路徑上面的數加起來可以得到乙個和,和最大的路徑稱為最佳路徑。你的任務就是求出最佳路徑上的數字之和。input 1 5 7 3 8 8 1 0 2 7 4 4 4 ...