POJ 1163

#include<iostream>
#include<stdio.h>
#include<algorithm> using namespace std; int max(int sum1,int sum2);
int dp(int i,int j,int **,int num,int **);
int main()
{
//freopen("acm.acm","r",stdin);
int num;
cin>>num;
int * * a;
int * * ans;
a = new int *[num];
ans = new int * [num];
int i,j;
for(i = ; i < num; i ++)
{
a[i] = new int[num];
}
for(i = ; i < num; i ++)
ans[i] =new int[num];
for(i = ; i < num; i ++)
for(j = ; j <= i; j ++)
{
cin>>a[i][j];
ans[i][j] = -;
}
// for(i = 0; i <num; i ++)
// {
// for(j = 0; j <= i; j ++)
// cout<<a[i][j]<<" ";
// cout<<endl;
// }
cout<<a[][] + dp(,,a,num,ans)<<endl;
}
int dp(int i,int j,int **a,int num,int **ans)
{
int sum1 = ;
int sum2 = ;
if(i + <= num -)
{
if(ans[i+][j] != -)
sum1 = a[i+][j]+ans[i+][j];
else
sum1 = a[i+][j]+dp(i+,j,a,num,ans);
if(ans[i+][j+] != -)
sum2 = a[i+][j+]+ans[i+][j+];
else
sum2 = a[i+][j+]+dp(i+,j+,a,num,ans);
ans[i][j] = max(sum1,sum2);
return max(sum1,sum2);
}
return ; }
int max(int sum1,int sum2)
{
//return sum1 > sum2 ? sum1 : sum2;
if(sum1>sum2)
return sum1;
else
return sum2;
}

关注我的公众号,当然,如果你对Java, Scala, Python等技术经验,以及编程日记,感兴趣的话。

POJ 1163

技术网站地址: vmfor.com

上一篇:考前停课集训 Day5 累


下一篇:第一章 C#入门 (Windows窗体应用程序)(三)