记忆化搜索。还有递归调用。大概题意就是一根木棍的长度length,按他所给的点切割。求最大的价值。

X , Y 表示 X点到Y点的。转移方程vis[X][Y] = min ( DP[X][i] + DP[i][Y] + ar[Y] - ar[X] ) ,i表示X,Y之间的切割点

#include <iostream>
#include <algorithm>
#include <cstring>
const int INF = 500000;using namespace std;int vis[60][60], ar[60], Case, length;int DP ( int x, int y ) {if ( vis[x][y] != -1 ) return vis[x][y];vis[x][y] = INF;for ( int i = x + 1; i < y; ++i )vis[x][y] = min ( vis[x][y], DP ( x, i ) + DP ( i, y ) + ( ar[y] - ar[x] ) );if ( vis[x][y] == INF ) vis[x][y] = 0;return vis[x][y];
}
int main ( ) {while ( cin >> length, length ) {cin >> Case;ar[0] = 0;ar[Case + 1] = length;for  ( int i = 1; i <= Case; ++i )cin >> ar[i];memset ( vis, -1, sizeof ( vis ) );cout << "The minimum cutting is " << DP ( 0, Case + 1 ) << "." <<endl;}return 0;
}

UVa 10003 - Cutting Sticks相关推荐

  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 (区间dp)

    题意: 给你一根木块,让你在n个点切块(不能改变顺序),使得总花费最小,看拿来切的那根木棍的长度. 代码: #include <map> #include <set> #inc ...

  4. UVA 10003 Cutting Sticks

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

  5. Cutting Sticks UVA - 10003

    题解:dp[ i ][ j ]=min { dp[ i ][ k ]+dp[ k ][ j ] }+a[ j ]-a [i ]. 和石子归并是一样的问题,枚举区间的长度,然后更新这个区间的值. 1 # ...

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

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

  7. Cutting Sticks

    UVA10003 这是一道区间动态规划 定义:dp[i][j]dp[i][j]dp[i][j]为第iii个切割点到第jjj个切割点之间的木条的最小切割费用,Point[i]Point[i]Point[ ...

  8. UVA 818 Cutting Chains(状压 + 暴搜)题解

    题意:有1~n个小环,他们中的有些互相扣在一起,问你至少切开几个能把这写小环串成一条链 思路:还是太菜了,题目给的n<=15,显然可以暴力解决. 用二进制表示每个环切还是不切,然后搜索所有情况. ...

  9. 紫书搜索 习题7-4 UVA - 818 Cutting Chains 暴力+dfs判环+位运算

    题目链接: https://vjudge.net/problem/UVA-818 题意: 选几个圆环去open.然后该圆环和其他就断开了.然后用这些open的圆环去连接剩下的圆环[最后打开的会合上], ...

最新文章

  1. 2022-2028年中国电梯行业市场调查及前瞻分析报告
  2. Mysql数据库基础(一)基本概述、构建服务、基本管理、数据类型
  3. Keil 5中精简器件支持包,手动安装pack包
  4. linux内核同步机制相关收集
  5. oracle java耗cpu_ORACLE高手请看过来,CPU使用率100% (100分)
  6. MyBatis动态代理执行原理
  7. SQL Server系统表sysobjects介绍
  8. 胜为蓝牙适配器驱动_udc 324b蓝牙驱动下载-胜为udc 324b蓝牙适配器驱动(win7/win10)v6.5.1.2700 官方版 - 极光下载站...
  9. java获取上周一_java 如何获取 上周一日期,上周末日期,本周一日期。
  10. vue3 +Ts后导包出现红色波浪线【vscode】
  11. 【Python学习笔记】简单调用百度API应用
  12. 【移动通信】5GC:5G的QoS (Quality of Service) 控制 服务质量管理
  13. GDB调试器——GDB调试器简介
  14. 使用百度地图时如何隐藏百度地图logo
  15. js 监听浏览器窗口大小变化
  16. Bat文件批量处理----DOS命令
  17. 未名企鹅极客 | Kylin Cube构建优化(上)
  18. mysql数据库cpu使用情况查询_数据库占用cpu较高的查询
  19. 西安三星招聘软件测试,【三星半导体测试工程师面试题目|面试经验】-看准网...
  20. try catch 对性能影响

热门文章

  1. 小迪安全--文件上传
  2. Linux拍照保存方法,Linux系统手机——拍照/易用/待机/连接/附加功能_手机_手机其它OS-中关村在线...
  3. 鼠标事件offsetX会传递给子元素
  4. start uml怎么自动生成代码_通过UML类图,自动生成相关代码
  5. 深度优先搜索与广度优先搜索区别和案例
  6. 5分钟新增SVN小乌龟项目,多项目管理(一个项目一个库)
  7. Python-encode与decode--编码相关知识
  8. 学习三个月,快乐小四年——感谢风变编程Python课程!
  9. Chrome 离线安装包
  10. 详细图解二叉树中序遍历(非递归C++)LeetCode94