DP整理
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DP整理相关的知识,希望对你有一定的参考价值。
(做过最水的DP题)
大意:求最优树状路径
Code:
1 #include <iostream> 2 #include <cstdio> 3 #define ll long long 4 using namespace std; 5 const int maxn=210; 6 ll n,m,a[maxn][maxn],f[maxn][maxn]; 7 inline ll max(ll a,ll b) 8 { 9 return a>b?a:b; 10 } 11 inline void read(ll &k) 12 { 13 ll f=1;char c=getchar();k=0; 14 while (c<‘0‘||c>‘9‘)c==‘-‘&&(f=-1),c=getchar(); 15 while (c>=‘0‘&&c<=‘9‘)k=k*10+c-‘0‘,c=getchar(); 16 k*=f; 17 } 18 int main() 19 { 20 read(m);read(n); 21 for (int i=1;i<=m;i++) 22 for (int j=1;j<=n;j++) 23 read(a[i][j]); 24 for (int i=1;i<=n;i++)f[1][i]=a[1][i]; 25 for (int i=2;i<=m;i++) 26 for (int j=1;j<=n;j++) 27 f[i][j]=max(max(f[i-1][j],f[i-1][j-1]),f[i-1][j+1])+a[i][j]; 28 printf("%lld\\n",max(max(f[m][n>>1],f[m][(n>>1)+1]),f[m][(n>>1)+2])); 29 }
以上是关于DP整理的主要内容,如果未能解决你的问题,请参考以下文章