uva 10003 Cutting Sticks 【区间dp】
来源:互联网 发布:医疗大数据分析 编辑:程序博客网 时间:2024/04/29 17:19
题目:uva 10003 Cutting Sticks
题意:给出一根长度 l 的木棍,要截断从某些点,然后截断的花费是当前木棍的长度,求总的最小花费?
分析:典型的区间dp,其实和石子归并是一样的,花费就是石子的和,那么久不用多说了。
AC代码:
#include<iostream>#include<cstdio>#include<cstring>#include<cstdlib>#include <map>#include <cmath>#include <vector>#include <algorithm>using namespace std;const int inf = 0x3f3f3f3f;const int N = 65;int a[N];int dp[N][N];int main(){ int chang,n,x; while(~scanf("%d",&chang) && chang) { memset(dp,0x3f3f3f3f,sizeof(dp)); scanf("%d",&n); a[0]=0,a[n+1]=chang; for(int i=1;i<=n;i++){ scanf("%d",&a[i]); } n+=2; for(int i=0;i<=n;i++) dp[i][i+1]=0; for(int len=2;len<=n;len++) { for(int l=0;(l+len)<n;l++) { int r=l+len; for(int i=l+1;i<r;i++) dp[l][r]=min(dp[l][r],dp[l][i]+dp[i][r]+(a[r]-a[l])); //printf("xx%d %d %d\n",l,r,dp[l][r]); } } printf("The minimum cutting is %d.\n",dp[0][n-1]); } return 0;}
0 0
- 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)
- 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
- 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
- UVA 10003 Cutting Sticks(区间DP)
- UVA 10003 Cutting Sticks(区间dp)
- UVA 10003 Cutting Sticks 区间dp
- 正则学习三
- Linux命令集
- apollo性能数据
- 示波器探头基础入门指南(上)
- Java克隆list
- uva 10003 Cutting Sticks 【区间dp】
- Jersey开发RESTFul的附件依赖包mimepull.jar
- Redis作为消息队列与RabbitMQ的性能对比
- 线段树模板-成段替换
- fastjson的一些常见用法
- Leetcode_num4_Reverse Integer
- BTrace工具简介
- 关于Java中的final转载
- ios createFolder