UVA 10003 Cutting Sticks
2015-02-17 20:52
357 查看
点击打开链接
区间dp问题,搞清楚转移方程就好了,一段区间的最小值就是两段之和加上区间的长度。
区间dp问题,搞清楚转移方程就好了,一段区间的最小值就是两段之和加上区间的长度。
#include<iostream> #include<algorithm> #include<math.h> #include<string.h> #include<cstdio> #include<string> using namespace std; const int maxn = 60; int i, j, k, n, f[maxn][maxn], length, a[maxn]; int main() { while (cin >> length, length) { cin >> n; memset(f, 1, sizeof(f)); for (a[0] = 0, a[n + 1] = length, i = 1; i <= n; i++) cin >> a[i]; for (i = 0; i <= n; i++) f[i][i] = f[i][i + 1] = 0; for (j = 2; j <= n + 1;j++) for (i = 0; i + j <= n + 1; i++) for (k = 1; k < j; k++) f[i][i + j] = min(f[i][i + k] + f[i + k][i + j] + a[i + j] - a[i], f[i][i + j]); cout << "The minimum cutting is " << f[0][n + 1] << "." << endl; } return 0; }
相关文章推荐
- uva 10003- Cutting Sticks (记忆化搜索)
- Uva 10003 Cutting Sticks (区间dp)
- UVA 10003 - Cutting Sticks
- UVA 10003 - Cutting Sticks
- 区间dp uva 10003 - Cutting Sticks
- UVa 10003 Cutting Sticks (DP)
- Uva-10003-Cutting Sticks
- uva_10003 Cutting Sticks
- 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 (区间DP)
- UVA 10003(p278)----CUtting Sticks
- uva 10003 Cutting Sticks(区间DP)
- UVa10003 - Cutting Sticks
- uva10003 Cutting Sticks
- UVa 10003:Cutting Sticks(DP)
- UVa 10003 - Cutting Sticks