POJ 1163 The Triangle 简单DP
2013-11-08 23:03
260 查看
看题传送门门:http://poj.org/problem?id=1163
困死了。。。。QAQ
普通做法,从下往上,可得状态转移方程为:
dp[i][j]= a[i][j] + max (dp[i+1][j] , dp[i+1][j+1] );
记忆化搜索,本题数据量小,与上面的都是0ms,但记忆化搜索保证每个子结点只访问一次,速度应该更快。
尝试使用宏定义让程序变得简洁而优雅
困死了。。。。QAQ
普通做法,从下往上,可得状态转移方程为:
dp[i][j]= a[i][j] + max (dp[i+1][j] , dp[i+1][j+1] );
#include<cstdio> #include<cstring> int a[101][101]; int dp[101][101]; int main() { int n; while(~scanf("%d",&n)) { memset(a,0,sizeof(a)); memset(dp,0,sizeof(dp)); for(int i=1;i<=n;i++) for(int j=1;j<=i;j++) scanf("%d",&a[i][j]); for(int i=1;i<=n;i++) dp [i]=a [i]; for(int i=n-1;i>=1;i--) { for(int j=1;j<=i;j++) dp[i][j]= a[i][j] + (dp[i+1][j] > dp[i+1][j+1]? dp[i+1][j]:dp[i+1][j+1]); } printf("%d\n",dp[1][1]); } }
记忆化搜索,本题数据量小,与上面的都是0ms,但记忆化搜索保证每个子结点只访问一次,速度应该更快。
#include<cstdio> #include<cstring> #include<algorithm> using namespace std; int a[101][101]; int dp[101][101]; int n; int d(int i,int j) { if(dp[i][j]>=0) return dp[i][j]; return dp[i][j]= a[i][j] + (i==n ? 0: max ( d(i+1,j) ,d(i+1,j+1))); } int main() { while(~scanf("%d",&n)) { memset(a,0,sizeof(a)); memset(dp,-1,sizeof(dp)); for(int i=1;i<=n;i++) for(int j=1;j<=i;j++) scanf("%d",&a[i][j]); d(1,1); printf("%d\n",dp[1][1]); } }
尝试使用宏定义让程序变得简洁而优雅
#include<cstdio> #include<cstring> #define F(i,n) for(int i=1;i<=n;i++) int a[101][101]; int dp[101][101]; int n; int main() { while(~scanf("%d",&n)) { memset(a,0,sizeof(a)); memset(dp,-1,sizeof(dp)); F(i,n) F(j,i) scanf("%d",&a[i][j]); F(i,n) dp [i]=a [i]; for(int i=n-1;i>=1;i--) { F(j,i) dp[i][j]= a[i][j]+ (dp[i+1][j] > dp[i+1][j+1]? dp[i+1][j]:dp[i+1][j+1]); } printf("%d\n",dp[1][1]); } }
相关文章推荐
- POJ 3176-Cow Bowling/POJ 1163-The Triangle(简单DP-数塔)
- POJ 1163 The Triangle (简单线性dp)
- POJ 1163 The Triangle 简单DP
- poj1163——The Triangle(简单dp)
- POJ 1163 The Triangle (简单DP)
- POJ 1163: The Triangle(dp)
- POJ 1163 The Triangle(dp)
- POJ 1163 The Triangle [DP]
- POJ 1163 The Triangle(简单动态规划)
- POJ 1163 The Triangle (DP)
- POJ 1163 The Triangle【DP】递归和递推
- POJ 1163 The Triangle【DP】
- poj1163 简单DP
- poj1163 The Triangle ——DP入门题
- poj 动态规划DP - 1163 The Triangle
- poj 1163__The Triangle(dp)
- POJ 1163 The Triangle(数塔模型dp)
- POJ 1163 The Triangle (DP)
- POJ 1163 The Triangle(基础DP)
- POJ 1163 The Triangle (线性dp)