题意:

给你一根木块,让你在n个点切块(不能改变顺序),使得总花费最小,看拿来切的那根木棍的长度。

代码:

#include <map>
#include <set>
#include <cmath>
#include <queue>
#include <stack>
#include <cstdio>
#include <vector>
#include <iomanip>
#include <cstdlib>
#include <cstring>
#include <iostream>
#include <algorithm>
#define ll long long
#define mod 1000000007
#define mem(a) memset(a,0,sizeof(a))using namespace std;const int maxn = 50 + 5 , inf = 0x3f3f3f3f ;int a[maxn],dp[maxn][maxn];
const char *s="The minimum cutting is ";int main(){int n,m;while(scanf("%d",&n)!=EOF&&n){scanf("%d",&m);mem(a);mem(dp);a[0] = 0;a[m+1]=n;for(int i=1;i<=m;i++) scanf("%d",&a[i]);for(int i=1;i<=m+1;i++){//区间长度for(int j=0;j+i<=m+1;j++){//区间起点int p = i+j;//终点int minn = inf;for(int k=j+1;k<p;k++){int temp = dp[j][k]+dp[k][p]+a[p]-a[j];if(temp<minn) minn = temp;}if(minn!=inf) dp[j][p] = minn;}}printf("%s%d.\n",s,dp[0][m+1]);}
}

转载于:https://www.cnblogs.com/seven7777777/p/10278727.html

UVA 10003 Cutting Sticks (区间dp)相关推荐

  1. UVA - 10003 - Cutting Sticks

    原命题链接:PDF/Vjudge 题目的意思是:告诉木棍的总长度,切点个数,和切点位置.每次切割花费的力气为切割的木棍的长度,求出最小花费的力气值. 还没怎么开始看dp,一开始看这道题目,想起了做过的 ...

  2. uva 10003——Cutting Sticks

    题意:给定一长为L的木棍和n个切割点,每次切割的费用为切割的长度,求最小的费用. 思路:dp,子问题是区间(i,j)的最小费用,临界是(i,j)只有一个切割点.dp[i,j]=min(dp[i,k]+ ...

  3. UVA 10003 Cutting Sticks

    大意:确定切割木棍的次序, 代价为当前木棍长度,使得切割的总的代价最小. 思路:我想了很久,后来发现状态转移方程可以这样表示:d[i][j] = min(d[i][j], d[i][k]+d[k][j ...

  4. UVa 10003 - Cutting Sticks

    记忆化搜索.还有递归调用.大概题意就是一根木棍的长度length,按他所给的点切割.求最大的价值. X , Y 表示 X点到Y点的.转移方程vis[X][Y] = min ( DP[X][i] + D ...

  5. UVa 1632 阿里巴巴(区间DP)

    https://vjudge.net/problem/UVA-1632 题意: 直线上有n个点,其中第i个点的坐标是xi,且它会在di秒之后消失.Alibaba可以从任意位置出发,求访问完所有点的最短 ...

  6. 紫书动规 例题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 ...

  7. UVA10003 切木棍 Cutting Sticks(区间DP、细节)

    整理的算法模板合集: ACM模板 本题其实就是一个区间DP 的模板题,总长度为len,有n个切割点,也就是说能被切割成n+1段,所以左边界是0,有边界是n + 1,所以答案就是f[0][n + 1]. ...

  8. 【区间dp】uva10003+ uva 1626 括号匹配问题 【有空自己记忆化写一下!!!】

    讲道理,其实我还不是太懂,这个题看到了两种写法 之前大概想的差不多,要这样实现呀: 常规写法,大概n--3 递归写法,稍微好理解一点 好了,接下来自从看了liuchuo的博客我要变身玛丽苏橙色了 题目 ...

  9. hdu 4597 + uva 10891(一类区间dp)

    题目链接:http://vjudge.net/problem/viewProblem.action?id=19461 思路:一类经典的博弈类区间dp,我们令dp[l][r]表示玩家A从区间[l, r] ...

最新文章

  1. 解决 Windows10 和 Ubuntu18.04.4 双系统 时间同步不一致问题
  2. Vmo前端数据模型设计
  3. 如何安全实现“记住我”的功能
  4. 恢复xfs文件系统superblock实验
  5. 数据的结构和运算(求和,最大和最小)
  6. MFC中字符间相互转换总结
  7. 解析ip分组_快来看看!!!你经常忽略的TCP/IP知识点~
  8. Scrapy学习篇(三)之创建项目
  9. USB3.1与Type-C有什么区别
  10. 学python能干什么工作-什么是Python?学完之后能做哪些工作?
  11. Java必知必会:异常机制详解
  12. 强大的代码编辑工具:Nova for mac v7.3中文版
  13. 计算机一级在线考试软件,全国计算机等级考试一级MS OFFICE练习软件
  14. 由中秋抢月饼事件想到的
  15. 天地不仁,以万物为刍狗
  16. Python3 多种方式爬取最新30期双色球历史数据存入csv
  17. 联合国粮农组织推荐的人类五大健康食品
  18. 人类社会发展对数学的影响
  19. 正规的离职证明应该是什么样的?
  20. Java实现数据自动填充到WORD文档并下载

热门文章

  1. 高中计算机竞赛教案,信息技术教学案例评比——选择排序的算法实现(金华第一中学)...
  2. linux显示 cron 服务是否正在运行_通过Linux系统自带日志监控系统安全
  3. python 字符串模板_Python字符串模板
  4. sapply lapply_R编程中的apply(),sapply(),lapply()和tapply()函数
  5. dax圣经 翻新_使用翻新和Node JS的Android图像上传
  6. cv::cornerSubPix()亚像素角点检测
  7. 关于微信安卓版计步作弊器
  8. 深入了解C++的广泛应用
  9. 四个措施打造安全的DevOps流程
  10. HTML(八)------ 布局