HDU 2084数塔问题

    xiaoxiao2023-03-24  5

    题目大意:  一个数塔,只能走相邻的位置,问如何走,才能让总值最大。

    题目分析:这题是经典的动态规划基本入门级题目,也可以算是贪心问题,从下往上遍历,相邻的节点比较大小,然后加到上面一层接着他们的节点,直到加到最顶层的一个节点,此时最顶层的节点的值就是答案。

    #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; #define maxn 200 int a[maxn][maxn]; int main(){ int c,t,i,j,n,m; scanf("%d",&c); while(c--){ scanf("%d",&n); for(i=0;i<n;i++) for(j=0;j<=i;j++) scanf("%d",&a[i][j]); for(i=n-1;i>0;i--){ for(j=i;j>0;j--){ a[i-1][j-1]+=max(a[i][j],a[i][j-1]); } } printf("%d\n",a[0][0]); } return 0; }

    转载请注明原文地址: https://ju.6miu.com/read-1202471.html
    最新回复(0)