数字三角形动态规划
别妄想泡我
545次浏览
2021年01月30日 18:50
最佳经验
本文由作者推荐
-
#include
using namespace std;
int s[100][100]={0};
int m[100][100]={0};
int a[100][100];
void Triangle(int n)
{
s[0][0]=a[0][0];
for(inti=1;i
{
s[i][0]=s[i-1][0]+a[i][0];
s[i][i]=s[i-1][i-1]+a[i][i];
}
for(inti=2;i
{
for(int j=1;j
{
if(s[i-1][j-1]>s[i-1][j])
{
s[i][j]=s[i-1][j-1]+a[i][j];
}
else
{
s[i][j]=s[i-1][j]+a[i][j];
}
}
}
}
int Max(int n)
{
intmaxs=s[n-1][0];
m[n-1][0]=1;
for(inti=1;i
{
if(maxs
{
maxs=s[n-1][i];
m[n-1][i-1]=0;
m[n-1][i]=1;
}