Noip 2003 加分二叉树
2017-11-07 07:50
375 查看
#include<cstdio> int n,a[50],f[50][50],root[50][50]; void dfs(int l,int r) { if (l>r) return; printf("%d ",root[l][r]); dfs(l,root[l][r]-1); dfs(root[l][r]+1,r); } int main() { scanf("%d",&n); for (int i=1;i<=n;i++) scanf("%d",&a[i]); for (int i=1;i<=n;i++) f[i][i]=a[i],root[i][i]=i,f[i][i-1]=1; for (int i=n-1;i>=1;i--) for (int j=i+1;j<=n;j++) for (int k=i;k<=j;k++) if (f[i][k-1]*f[k+1][j]+f[k][k]>f[i][j]) { f[i][j]=f[i][k-1]*f[k+1][j]+a[k]; root[i][j]=k; } printf("%d\n",f[1] ); dfs(1,n); return 0; }
相关文章推荐
- NOIP 2003 加分二叉树
- NOIP2003 加分二叉树
- Noip 2003 加分二叉树 - 区间DP
- [NOIP提高组2003]加分二叉树
- 【记忆化搜索】[NOIP2003]加分二叉树 binary
- CJOJ 1010【NOIP2003】加分二叉树 / Luogu 1040 加分二叉树 /CodeVS 1090 加分二叉树
- 洛谷P1040 加分二叉树(NOIP2003)
- NOIP2003 洛谷1040 加分二叉树
- NOIP2003提高组 加分二叉树
- 集训-加分二叉树[NOIP2003提高组]
- NOIP 2003 Senior 3 - 加分二叉树
- noip2003 加分二叉树 dp
- noip2003加分二叉树 2008.10.30
- NOIP2003 加分二叉树
- 【原题】【noip 2003 T2】【动态规划】加分二叉树
- [NOIP2003]加分二叉树 --动态规划-类似矩阵相乘
- noip2003加分二叉树
- NOIP2003 加分二叉树
- 加分二叉树[NOIP 2003提高组][Codevs 1090]
- 计蒜客区间dp例题 奇怪的二叉树(NOIP2003加分二叉树)