uva10003
/*
2014.3.6
这题说的是给你了一根木棒 然后 n 个点(线段上的点)
然后计算 在这 n个点上都切下去的 最小花费
举个例子
100
3
25 50 75
如果 从 25 开始切 然后切 50 75 则花费是 100 + 75 +50= 225
如果 从 50 开始切 然后切 25 75 则花费 100 +50 +50 =200
相对 更优一些
解题: 可以发现 当 从某个点坐标为 D 切下去后则从0到D的 部分和从 D到 I 的 部分就没有了关系
因此 得到状态转移的 公式
dp[i][j]=min(dp[i][k]+dp[k][j]);
得解
*/ #include<cstdio>
#include<string.h>
#include<iostream>
using namespace std;
int dp[100][100];
int W[100];
int main()
{
int N,i,j;
W[0]=0;
while(scanf("%d",&N)==1&&N!=0){
int t; scanf("%d",&t);W[t+1]=N;
for( i=1;i<=t;i++)
{
scanf("%d",&W[i]);
dp[i-1][i]=W[i]-W[i-1];
}
t++;
dp[t-1][t]=W[t]-W[t-1];
for(i=0;i+2<=t;i++)
dp[i][i+2]=dp[i][i+1]+dp[i+1][i+2];
for(i=0;i+1<=t;i++) dp[i][i+1]=0; for(int k=3;k<=t;k++) for(i=0;i+k<=t;i++)
{
int c=i+k; dp[i][i+k]=10000000; for(int j=i+1;j<c;j++) if(dp[i][c]>(dp[i][j]+dp[j][c]+W[c]-W[i])){ dp[i][c]=dp[i][j]+dp[j][c]+W[c]-W[i];
} } printf("The minimum cutting is %d.\n",dp[0][t]);
} return 0;
}
uva10003的更多相关文章
- uva10003 - Cutting Sticks(简单动规)
/* * Author: Bingo * Created Time: 2015/2/13 18:33:03 * File Name: uva10003.cpp */ #include <iost ...
- UVA-10003 Cutting Sticks 动态规划 找分界点k的动规
题目链接:https://cn.vjudge.net/problem/UVA-10003 题意 有根棍子,上面有些分割点(n<50),每次按分割点切割棍子时,费用为当前棍子的长度. 问有什么样的 ...
- uva10003 Cutting Sticks
http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&p ...
- uva10003 区间DP
很清晰的区间dp问题.d(i,j)表示断点i到断点j的最小费用,由于开头和结尾也是断点,所以应该加入断点数组,即 cut[0]=0; cut[n+1]=len; 边界就是d(i,i+1)=0; 转移方 ...
- Uva 437 巴比伦塔 && UVA10003
要求底面严格小于它下方立方体的长宽,求出最高情况,一块石头可以多次使用 用结构体记录一块石头的三种放置情况,按面积排序. dp[i] = max(dp[i],dp[j] + block[i].high ...
- UVA10003 【Cutting Sticks】
[分析] 设d(i,j)为切割小木棍i-j的最优费用,则d(i,j)=min{d(i,k)+d(k,j)|i<k<j}+a[j]-a[i],其 中最后一项a[j]-a[i]代表第一刀的费用 ...
- UVa 10003 切木棍(区间DP+最优矩阵链乘)
https://vjudge.net/problem/UVA-10003 题意: 有一根长度为L的棍子,还有n个切割点的位置.你的任务是在这些切割点的位置处把棍子切成n+1部分,使得总切割费用最小.每 ...
- 简单Dp----最长公共子序列,DAG最长路,简单区间DP等
/* uva 111 * 题意: * 顺序有变化的最长公共子序列: * 模板: */ #include<iostream> #include<cstdio> #include& ...
- [总结-动态规划]经典DP状态设定和转移方程
马上区域赛,发现DP太弱,赶紧复习补上. #普通DP CodeForces-546D Soldier and Number Game 筛法+动态规划 待补 UVALive-8078 Bracket S ...
随机推荐
- 在 NHibernate 中一切必须是 Virtual 的吗?
原文地址:Must Everything Be Virtual With NHibernate? 老赵在博文中 我对NHibernate的感受(2):何必到处都virtual 提到这篇文章,顺便翻译一 ...
- iOS - 友盟集成QQ分享的AppID转换16进制的方法
设置xcode的url scheme格式为“QQ”+腾讯QQ互联应用appId转换成十六进制(不足8位前面补0),例如“QQ41EE2B54”.生成十六进制方法:echo 'ibase=10;obas ...
- mvc 实现超时弹窗后跳转
为了实现保持登录状态,可以用cookie来解决这一问题 假设过期时间为30分钟,校验发生在服务器,借助过滤器,可以这样写 public class PowerFilter : AuthorizeAtt ...
- jquery 设置style:display 其实很方便的哦
("#id").css('display','none'); $("#id").css('display','block'); 或 $("#id&qu ...
- intel笔记本cpu型号后缀详解(M,U,QM,MQ,HQ,XM)
M:笔记本专用CPU,一般为双核,M前面一位数字是0,意味着是标准电压处理器,如果是7,则是低电压处理器. U:笔记本专用低电压CPU,一般为双核,U前面一位数字为8,则是28W功耗的低压处理器(标准 ...
- Windows hackson (rundll32--ADS)
http://www.tuicool.com/articles/AnuqA3 http://www.2cto.com/Article/201507/424713.html http://drops.w ...
- 设置elasticsearch一次最大数量查询
PUT my_index/_settings?preserve_existing=true{ "max_result_window": "2000000000" ...
- NYOJ 587 blockhouses 【DFS】
blockhouses 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描写叙述 Suppose that we have a square city with straigh ...
- 001-将自己的jar提交maven中央仓
一.Maven中央仓库提交过程 ① https://issues.sonatype.org 工单管理地址,就是申请上传资格和groupId 的地方. ② https://oss.sonatype.or ...
- go for cryptocurrency
https://blog.conformal.com/category/btcd/ https://github.com/btcsuite/btcd/tree/master/docs https:// ...