本文主要是介绍poj-3176-Cow Bowling-dp,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题意:
给你一堆数,让你从上往下走,走最长的一个路径到达最下面。
做法:
从下往上走。dp[i][j]+=max(dp[i+1][j],dp[i+1][j+1])
#include<iostream>
#include<stdio.h>
#include<string.h>
using namespace std;
int main()
{int n,i,j;int dp[351][351];cin>>n;for(i=1;i<=n;i++){for(j=1;j<=i;j++){cin>>dp[i][j];}}for(i=n-1;i>=1;i--){for(j=1;j<=i;j++){dp[i][j]=max(dp[i][j]+dp[i+1][j],dp[i][j]+dp[i+1][j+1]);}}printf("%d\n",dp[1][1]);return 0;
}
这篇关于poj-3176-Cow Bowling-dp的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!