uva 10304 - Optimal Binary Search Tree(区间dp)
来源:互联网 发布:英文说明书翻译软件 编辑:程序博客网 时间:2024/05/18 04:53
题意:
建一棵树,左子树小于根小于右子数,现要求求出f1*h1+f2*h2+...的最小(f是权值,h是高度)
那么用区间dp,枚举i到j以k为根的最小总数
那么每增加一层(除了根),就会增加sum:i->j并且减去a[k];
#include<cstdio>#include<iostream>#include<algorithm>#include<cstring>using namespace std;const int maxn = 260;const int INF = 1<<30;int n;int a[maxn];int sum[maxn];int dp[maxn][maxn];int main() {while(scanf("%d", &n) == 1) {sum[0] = 0;for(int i=1; i<=n; i++) {scanf("%d", &a[i]);sum[i] = sum[i-1]+a[i];}memset(dp, 0, sizeof(dp));for(int i=2; i<=n; i++)for(int j=i-1; j; j--) {dp[j][i] = INF;for(int k=j; k<=i; k++) {dp[j][i] = min(dp[j][i], dp[j][k-1]+dp[k+1][i]+sum[i]-sum[j-1]-a[k]);}}printf("%d\n", dp[1][n]);}return 0;}
0 0
- uva-10304 Optimal Binary Search Tree(区间dp)
- uva 10304 - Optimal Binary Search Tree(区间dp)
- UVA 10304 Optimal Binary Search Tree (区间dp)
- uva 10304 Optimal Binary Search Tree (区间DP)
- uva 10304 - Optimal Binary Search Tree(区间dp)
- Optimal Binary Search Tree+区间dp+uva
- uva 10304 Optimal Binary Search Tree(区间dp)
- UVa 10304 Optimal Binary Search Tree / 区间DP
- UVA - 10304 Optimal Binary Search Tree 区间DP
- uva 10304 Optimal Binary Search Tree(DP)
- uva 10304 Optimal Binary Search Tree(dp)
- uva 10304 Optimal Binary Search Tree 最优二叉树编码 区间dp
- 区间dp(uva10304-Optimal Binary Search Tree)
- 小白dp uva 10304 - Optimal Binary Search Tree
- uva 10304 Optimal Binary Search Tree
- UVA 10304 Optimal Binary Search Tree
- uva 10304 - Optimal Binary Search Tree
- UVa 10304 - Optimal Binary Search Tree
- Java中HashMap详解
- MAC上安装brew,安装wget
- 飞思卡尔的i.mx6dl开发板上实现nfs网络文件系统挂载操作指南
- JAVA使用JDBC连接MySQL数据库
- 利用WCF实现上传下载文件服务
- uva 10304 - Optimal Binary Search Tree(区间dp)
- 【BZOJ1901】Zju2112 Dynamic Rankings【树状数组套主席树 / 整体二分】
- 【项目管理】优秀项目经理必知的六大沟通技巧
- Python Decorator 3: 嵌套
- 超越sublime的Visual Studio Code
- 笔试题29. LeetCode OJ (16)
- centos 64 安装mongodb
- 论dts中的of_platform_populate如何选择性加载device node为platform device
- [转] Intent 传值和 Bundle 传值的区别