1.递推计算
#include#include using namespace std;int mx(int a,int b){ if(a>b) return a; else return b;}int main (){ int n; int a[200][200]; while(~scanf("%d",&n)) { for(int i=0;i >a[i][j]; } } for(int i=n-1;i>0;i--) { for(int j=n-1;j>0;j--) { a[i-1][j-1]=a[i-1][j-1]+mx(a[i][j-1],a[i][j]); } } cout<
提交时数组开小了。提示Runtime Error at Test 1
2.记忆化搜索
#include方法不错#include #include using namespace std;int a[200][200],d[200][200],n;int ma(int a,int b){ if(a>b) return a; else return b;}int dd(int i,int j){ if(d[i][j]>=0) return d[i][j]; else if(n==i) return d[i][j]=a[i][j]; else return d[i][j]=a[i][j]+ma(dd(i+1,j),dd(i+1,j+1));}int main (){ while(~scanf("%d",&n)) { memset(d,-1,sizeof(d)); for(int i=0;i >a[i][j]; } } cout<