1 编辑距离
2 捡水果
3 01背包
4 数字三角形
https://oj.sdutacm.cn/onlinejudge3/contests/4286/problems/C
- 是从倒数第二行开始合并的,注意我们相当于在覆盖。
点击查看代码
#include<bits/stdc++.h>
using namespace std;
const int maxn = 110;
int dp[maxn][maxn];
int main()
{
int n;
cin >> n;
for (int i = 1;i <= n;i++)
{
for (int j = 1;j <= i;j++)
cin >> dp[i][j];
}
for (int i = n-1;i >0;i--)
{
for (int j = 1;j <= i;j++)
{
dp[i][j]+= max(dp[i + 1][j], dp[i + 1][j + 1]);
}
}
cout << dp[1][1] << endl;
}
浙公网安备 33010602011771号