zoukankan      html  css  js  c++  java
  • UVA 10003 cuting sticks 切木棍 (区间dp)

    区间dp,切割dp[i][j]的花费和切法无关(无后效性)

    dp[i][j]表示区间i,j的花费,于是只要枚举切割方法就行了,区间就划分成更小的区间了。O(n^3)

    四边形不等式尚待学习

    #include<bits/stdc++.h> //变量不要取成ignore left之类
    using namespace std;
    const int maxn = 51;
    int cut[maxn];
    int dp[maxn][maxn];
    const int INF = 0x3fffffff;
    int main()
    {
        //freopen("in.txt","r",stdin);
        int L,n;
        while(scanf("%d",&L),L){
            scanf("%d",&n);
            cut[0] = 0; cut[n+1] = L;
            for(int i = 1; i <= n; i++) scanf("%d",cut+i);
            for(int i = 0; i <= n; i++) dp[i][i+1] = 0;
    
            for(int d = 1; d <= n; d++){
                for(int i = 0,mi = n-d; i <= mi; i++){
                    int j = i+d+1;
                    dp[i][j] = INF;
                    for(int k = i+1; k < j; k++){
                        dp[i][j] = min(dp[i][j],dp[i][k]+dp[k][j]);
                    }
                    dp[i][j] += cut[j]-cut[i];
                }
            }
            printf("The minimum cutting is %d.
    ",dp[0][n+1]);
        }
        return 0;
    }

     

  • 相关阅读:
    Linux文件系统介绍
    httpd 2.4连接php-fpm
    基于lnmp环境安装Discuz
    apache 与 php-fpm 几种处理方式
    Discuz!安装搭建
    Linux中实现文本过滤
    httpd-2.4安装配置
    firewall-cmd.man
    了解JSON
    JSTL和EL表达式
  • 原文地址:https://www.cnblogs.com/jerryRey/p/4741057.html
Copyright © 2011-2022 走看看