UVa 10003 Cutting Sticks(区间DP)
题意:
给定一个l长得木棍,要把它从给定的n个点截断,每截断一次需要的费用为木棍的长度。
求截断这个木棍所要花费的最小代价。
思路:
典型的区间DP,要额外添加2个点:0和l,于是区间从1不断扩展到n+1,dp[i][j]代表点i到点j所要花费的最小代价。
#include <cstdio> #include <cstdlib> #include <cstring> #include <algorithm>#define min(a,b) (((a) < (b)) ? (a) : (b))const int INF = 1e9; int a[60]; int dp[60][60];int main() {int l, n;while (scanf("%d", &l) && l){scanf("%d", &n);for (int i = 1; i <= n; ++i)scanf("%d", &a[i]);a[0] = 0, a[n+1] = l;n += 1;memset(dp, 0, sizeof(dp));for (int i = 0; i <= n; ++i){for (int j = 0; j <= n; ++j)dp[i][j] = INF;dp[i][i] = 0;}for (int i = 0; i < n; ++i)dp[i][i+1] = 0;for (int p = 2; p <= n; ++p)for (int i = 0, j = p; j <= n; ++i, ++j)for (int k = i; k < j; ++k)dp[i][j] = min(dp[i][j], dp[i][k] + dp[k][j] + a[j] - a[i]);printf("The minimum cutting is %d.\n", dp[0][n]);}return 0; }
转载于:https://www.cnblogs.com/kedebug/archive/2012/11/11/2765517.html
UVa 10003 Cutting Sticks(区间DP)相关推荐
- UVA 10003 Cutting Sticks (区间dp)
题意: 给你一根木块,让你在n个点切块(不能改变顺序),使得总花费最小,看拿来切的那根木棍的长度. 代码: #include <map> #include <set> #inc ...
- UVA - 10003 - Cutting Sticks
原命题链接:PDF/Vjudge 题目的意思是:告诉木棍的总长度,切点个数,和切点位置.每次切割花费的力气为切割的木棍的长度,求出最小花费的力气值. 还没怎么开始看dp,一开始看这道题目,想起了做过的 ...
- uva 10003——Cutting Sticks
题意:给定一长为L的木棍和n个切割点,每次切割的费用为切割的长度,求最小的费用. 思路:dp,子问题是区间(i,j)的最小费用,临界是(i,j)只有一个切割点.dp[i,j]=min(dp[i,k]+ ...
- UVA 10003 Cutting Sticks
大意:确定切割木棍的次序, 代价为当前木棍长度,使得切割的总的代价最小. 思路:我想了很久,后来发现状态转移方程可以这样表示:d[i][j] = min(d[i][j], d[i][k]+d[k][j ...
- UVa 10003 - Cutting Sticks
记忆化搜索.还有递归调用.大概题意就是一根木棍的长度length,按他所给的点切割.求最大的价值. X , Y 表示 X点到Y点的.转移方程vis[X][Y] = min ( DP[X][i] + D ...
- UVa 1632 阿里巴巴(区间DP)
https://vjudge.net/problem/UVA-1632 题意: 直线上有n个点,其中第i个点的坐标是xi,且它会在di秒之后消失.Alibaba可以从任意位置出发,求访问完所有点的最短 ...
- 紫书动规 例题9-10 UVA - 1626 Brackets sequence 区间dp
题目链接: https://vjudge.net/problem/UVA-1626 题意: 题解: dp[i][j]:= i~j需要最少的括号 区间dp: dp[i][j] = min(dp[i][j ...
- UVA10003 切木棍 Cutting Sticks(区间DP、细节)
整理的算法模板合集: ACM模板 本题其实就是一个区间DP 的模板题,总长度为len,有n个切割点,也就是说能被切割成n+1段,所以左边界是0,有边界是n + 1,所以答案就是f[0][n + 1]. ...
- 【区间dp】uva10003+ uva 1626 括号匹配问题 【有空自己记忆化写一下!!!】
讲道理,其实我还不是太懂,这个题看到了两种写法 之前大概想的差不多,要这样实现呀: 常规写法,大概n--3 递归写法,稍微好理解一点 好了,接下来自从看了liuchuo的博客我要变身玛丽苏橙色了 题目 ...
- hdu 4597 + uva 10891(一类区间dp)
题目链接:http://vjudge.net/problem/viewProblem.action?id=19461 思路:一类经典的博弈类区间dp,我们令dp[l][r]表示玩家A从区间[l, r] ...
最新文章
- SharePoint Server 2010 安装图解
- hdu 5019 第k大公约数
- kubernetes入门mysql_Kubernetes 1.13 完全入门 (10) Mysql 数据例子
- python和javascript哪个好_JavaScript与Python:主要区别
- JUC.Condition学习笔记[附详细源码解析]
- Python3.x和Python2.x的区别[转]
- 在Anaconda中安装TensorFlow1.14.0与TensorFlow2.0.0
- (24)VHDL实现与或非(行为描述)
- 剑指offer之删除链表中重复的结点
- linux如何安装阵列卡驱动程序,Linux安装阵列卡驱动及档.doc
- 谈谈WCF中的Data Contract(2):WCF Data Contract对Generic的支持
- 数据库基本操作和常用命令
- Python深度学习-NLP实战:FastText实现中文文本分类(代码已跑通!)
- miui 10 android 9,MIUI 10稳定版刚到 基于安卓9的MIUI10 8.9.7开发版也来了
- 【调剂】上海海洋大学物理海洋学专业招收理学调剂硕士生
- “创新雷神号”卫星成功发射,华为云分布式云原生“天地一体”首次组网成功
- 破解微信数据库 并查询数据上传服务器
- 微信小程序使用高德小程序定位插件amap易忽略问题
- 工业品企业的网站到底应该放什么内容?上海添力
- vagrant ssh卡住
热门文章
- batchsize和模型精度的影响
- version `GLIBCXX_3.4.22‘ not found
- python实现同一目录文件下所有Excel数据文件的合并
- nohup命令简单的使用
- Android手机使用Windows应用,微软宣布在你的手机应用上运行安卓APP功能向Windows 10稳定版提供...
- python图像边缘检测_python 简单图像处理(11) 空间域图像锐化(边缘检测)
- python setuptools 打包 发布
- Hyperledger fabric v2.3 交易流程 翻译
- JDBC12 ORM01 Object[]存放一条记录
- oracle的解析器,Oracle中sql量化分析工具