UVa #10003 Cutting Sticks (例题9-9)
来源:互联网 发布:网络学历教育报名 编辑:程序博客网 时间:2024/05/29 09:16
9-8还没做完,感觉有点困难。回头再做
这道题很好的训练了最优矩阵连乘。记忆化搜索TLE了,递推则很顺畅。
递推的顺序:不能按照以前的方法递推,因为求某一个区间的解的时候要用到它子区间的解,如果按照以前的顺序递推,则子区间的解此时还没有求出来。所以先把长度为1的子区间的解求出来,这样就能求长度为2的子区间的解,然后就能求3、4...直到n+1
Run Time: 0.135s
#define UVa "LT9-9.10003.cpp"//Cutting Stickschar fileIn[30] = UVa, fileOut[30] = UVa;#include<cstring>#include<cstdio>#include<algorithm>using namespace std;//Global Variables. Reset upon Each Case!const int maxn = 50 + 10, maxl = 1000 + 10;int l, n;int c[maxn];int d[maxl][maxl];/////int main() { while(scanf("%d", &l) && l) { scanf("%d", &n); for(int i = 1; i <= n; i ++) scanf("%d", &c[i]); c[0] = 0; c[n+1] = l; for(int len = 1; len <= n+1; len ++) { for(int i = 0; i+len <= n+1; i ++) { int j = i + len; if(len == 1) d[i][j] = 0; else { d[i][j] = d[i][i+1] + d[i+1][j]; for(int k = i + 2; k < j; k ++) d[i][j] = min(d[i][j], d[i][k]+d[k][j]); d[i][j] += c[j] - c[i]; } } } printf("The minimum cutting is %d.\n", d[0][n+1]); } return 0;}//Memoization, TLE://int dp(int i, int j) {// if(d[i][j] != -1) return d[i][j];// if(i >= j-1) d[i][j] = 0;// else {// int w = c[j] - c[i];// d[i][j] = dp(i,i+1) + dp(i+1,j) + w;// for(int k = i+2; k < j; k ++)// d[i][j] = min(d[i][j], dp(i,k)+dp(k,j)+w);// }// return d[i][j];//}
0 0
- UVa #10003 Cutting Sticks (例题9-9)
- 例题9-9 UVA 10003 Cutting Sticks 切木棍(最优三角剖分 || 区间dp )
- UVa 10003 Cutting Sticks
- UVA 10003 - Cutting Sticks
- UVa 10003 - Cutting Sticks
- uva 10003 Cutting Sticks
- uva:10003 - Cutting Sticks
- UVa 10003 Cutting Sticks
- UVa 10003 Cutting Sticks
- UVa 10003 - Cutting Sticks
- UVA 10003 Cutting Sticks
- Uva - 10003 - Cutting Sticks
- UVa 10003 - Cutting Sticks
- UVa 10003 - Cutting Sticks
- UVA 10003 Cutting Sticks
- UVa 10003 Cutting Sticks
- UVa 10003 - Cutting Sticks
- Uva-10003-Cutting Sticks
- 游戏人生
- Number Sequence
- CF 474D Flowers DP
- USACO 1.5 Superprime Rib 特殊的质数肋骨(模拟)
- HUST 1017 Exact cover
- UVa #10003 Cutting Sticks (例题9-9)
- CodingRuler
- ZOJ 3706
- 栈溢出攻击系列:shellcode在linux x86 64位攻击获得root权限(五)栈溢出原理
- 关于OS X中的/private/etc和/etc目录
- 在线数据迁移经验:如何为正在飞行的飞机更换引擎
- 11b 一个简单实用好学易于理解的模态对话框 附截图
- 唯有自由人才能创造出金字塔
- 白话数据结构之【线段树】