博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
BUCT-OJ 2060 数字三角形4
阅读量:6614 次
发布时间:2019-06-24

本文共 1060 字,大约阅读时间需要 3 分钟。

【题目来源】: TYVJ 1084

【题目链接】:

【解题思路】:

此题我的思路和数字三角形3的思路一样,只不过(n/2,n/2)换成了待输入的点(x,y),必然经过一点,那我就从这点为分界,先从顶递推至此点所在行,再从底递推至此点所在行,两次的结果累加在此点上,即为所得结果

A C代码】:

#include 
#include
#include
#include
using namespace std; #define maxn 30 int arr[maxn][maxn]; int main() { int n, i, j, x, y; while(~scanf("%d", &n)) { memset(arr, 0, sizeof(arr)); for(i = 1; i <= n; i++) { for(j = 1; j <= i; j++) scanf("%d", &arr[i][j]); } scanf("%d%d", &x, &y); for(i = n; i > x; i--) { for(j=1; j <= i; j++) { arr[i-1][j] += max(arr[i][j], arr[i][j+1]); } } for(i = 1; i < x; i++) { for(j=1; j <= i+1; j++) { arr[i+1][j] += max(arr[i][j-1], arr[i][j]); } } printf("%d\n", arr[x][y]); } return 0; }

转载于:https://www.cnblogs.com/litaotao/archive/2013/05/19/3592475.html

你可能感兴趣的文章