UVA 10003 切木棍(区间dp)
来源:互联网 发布:剑灵金燕捏脸数据 编辑:程序博客网 时间:2024/05/15 11:58
思路:本题是一个区间dp题,状态方程dp(i,j)=max(dp(i,k)+dp(k,j)+v[j]-v[i]) 其中(i<k<j) ,dp表示从i到j的最小花费。
AC代码:
#include<cstdio>#include<cstring>#include<algorithm>using namespace std;#define INF 2147483647const int maxn=50+5;int v[maxn];int dp[maxn][maxn];int main(){int n,l;while(scanf("%d",&l)==1 && l){scanf("%d",&n);for(int i=1;i<=n;i++) scanf("%d",&v[i]); v[0]=0;v[n+1]=l;memset(dp,0,sizeof(dp));for(int len=3;len<=n+2;len++) for(int i=0;i<n+2-len+1;i++){ int j=i+len-1; dp[i][j]=INF; for(int k=i+1;k<j;k++){ dp[i][j]=min(dp[i][j],dp[i][k]+dp[k][j]+v[j]-v[i]); } } printf("The minimum cutting is %d.\n",dp[0][n+1]);}return 0;}
1 0
- 区间DP(切木棍,uva 10003)
- UVA 10003 切木棍(区间dp)
- UVA-10003 切木棍,区间dp
- Uva 10003 切木棍(dp)
- 例题9-9 UVA 10003 Cutting Sticks 切木棍(最优三角剖分 || 区间dp )
- UVA 10003 Cutting Sticks 切木棍 dp
- UVA 10003 切木棍
- uva 10003 切木棍
- uva10003 切木棍 线性区间dp
- 【UVa 10003】【区间DP】Cutting Sticks【有一个长为L的木棍,木棍中间有n个切点。每次切割的费用为当前木棍的长度。求切割木棍的最小费用。】
- [UVA10003] 切木棍(dp)
- UVA 10003 区间DP
- 区间dp uva 10003
- UVa 10003 Cutting Sticks(DP 最优木棍切割)
- uva 10003 Cutting Sticks (区间dp)
- uva 10003 Cutting Sticks(区间DP)
- UVA 10003 - Cutting Sticks(区间DP)
- Uva 10003-Cutting Sticks(区间DP)
- 逻辑与、逻辑或 重载
- bzoj1657
- android hook使用示例
- java安全架构____数字证书证书类型总结
- vim
- UVA 10003 切木棍(区间dp)
- Python 语法
- 禁用Cookie后Session追踪
- 哈弗曼树
- 2-3-4树和B树
- Python 语法练习 -- 乘法表
- Jon Snow and his Favourite Number
- 学习笔记3--给窗口添加一个小坐标
- HDU 2033 JAVA