题目:
描述
一个数字三角宝塔。
设数字三角形中的数字为绝对值不超过1000的整数。
小K从最顶层走到最底层,每一步可向下或右斜线向下走。
每走过一个节点他会把这个节点的数字加在自己计数器中。
另外他最多只能向下走k次。
现在小K想知道他到达底层后,计数器中可能的最大的值。
输入
输入数据的第1行是数字三角形的行数n和能够沿左斜线向下走的次数k,1<=n<=1000,0<=k<=100。
接下来n行是数字三角形各行中的数字。所有数字都小于1000。
输出
如题
样例
输入
4 2
1
3 2
40 10 1
100 3 2 20
输出
47
又是这道数字三角形,其实和数3差不多,我们也只需要分析一下此题即可。
如图,我们需要取最大值的地方就是黄色部分,所以在最终取ans的时候处理一下就能A了
代码参考:
#include<bits/stdc++.h>
using namespace std;
int n,a[1005][1005],dp[1005][1005],ans=-1e9,k;
int main()