| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
难道用函数调用走不通?硬要换成循环?算法应该没什么问题,PKU里好多题目用函数调用都TLE晕
这题用不带函数调用的动态规划方法该怎么解呢?
#include "stdio.h"
int a[100][100];
int dp(int i,int j,int n)
{int q,left,right;
if(i==n)return a[i][j];
else
{left=dp(i+1,j,n)+a[i][j];
right=dp(i+1,j+1,n)+a[i][j];
if(left>right)return left;
else return right;
}
}
int main()
{int i,n,j,max;
char ch;
while(scanf("%d",&n)!=EOF)
{for(i=1;i<=n;i++)
for(j=1;j<=i;j++)
{scanf("%d",&a[i][j]);
ch=getchar();}
i=1;
j=1;
max=dp(i,j,n);
printf("%d\n",max);
}
return 0;
}
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator