UVA 10003 Cutting Sticks 区间DP
2014-05-19 20:37
387 查看
#include <map> #include <set> #include <list> #include <cmath> #include<cctype> #include <ctime> #include <deque> #include <stack> #include <queue> #include <cstdio> #include <string> #include <vector> #include <cstdlib> #include <cstring> #include <iostream> #include <algorithm> #define LL long long #define PI 3.1415926535897932626 using namespace std; int gcd(int a, int b) { return a % b == 0 ? b : gcd(b, a % b); } int dp[55][55]; int L; int src[60]; int DP(int l,int r) { int &ans=dp[l][r]; if (ans!=-1) return ans; if (r-1==l) return ans=0; ans=1e6; for (int i=l+1;i<r;i++) { int tmp=DP(l,i)+DP(i,r)+src[r]-src[l]; if (tmp<ans) ans=tmp; } return ans; } int main() { src[0]=0; while (scanf("%d",&L)==1) { if (L==0) break; memset(dp,-1,sizeof(dp)); int n; scanf("%d",&n); src[n+1]=L; for (int i=1;i<=n;i++) scanf("%d",&src[i]); printf("The minimum cutting is %d.\n", DP(0, n+1)); } return 0; }
相关文章推荐
- uva 10003 Cutting Sticks 【区间dp】
- UVA 10003 - Cutting Sticks(区间DP)
- UVa 10003 Cutting Sticks(区间DP)
- Uva 10003 Cutting Sticks (区间dp)
- UVA 10003 Cutting Sticks(区间DP)
- 区间dp uva 10003 - Cutting Sticks
- uva 10003 Cutting Sticks(区间DP)
- 【UVa 10003】【区间DP】Cutting Sticks【有一个长为L的木棍,木棍中间有n个切点。每次切割的费用为当前木棍的长度。求切割木棍的最小费用。】
- UVA - 10003 - Cutting Sticks (区间DP)
- UVA 10003 Cutting Sticks(区间DP)
- UVA - 10003 Cutting Sticks (区间DP)
- UVA 10003 Cutting Sticks 区间dp
- uva 10003 Cutting Sticks (动态规划:区间DP)
- Uva 10003-Cutting Sticks(区间DP)
- UVA - 10003 Cutting Sticks (区间dp)
- 例题9-9 UVA 10003 Cutting Sticks 切木棍(区间dp)
- UVA-10003 Cutting Sticks (区间DP)
- UVA 10003 Cutting Sticks(区间 DP)
- UVa 10003 - Cutting Sticks(白书,区间DP)
- uva 10003 - Cutting Sticks(区间DP)