uva10003

来源:互联网 发布:学历网络教育学校 编辑:程序博客网 时间:2024/05/21 03:55

题意: 经典区间dp 类似 矩阵链乘 和石子合并
思路: dp

AC代码:

#include <cstdio>#include <cstring>#include <algorithm>using namespace std;#define INF 0x3f3f3f3fconst int maxn=105;int dp[maxn][maxn];int num[maxn];int main(){  //  freopen("1.txt","r",stdin);    int l,n;    while(scanf("%d",&l)!=EOF && l){        scanf("%d",&n);        for(int i=1; i<=n; i++) scanf("%d",&num[i]);        num[0]=0;        num[n+1]=l;        for(int i=0; i<=100; i++){            for(int j=0; j<=100; j++) {                dp[i][j]=99999999;            }        }        for(int i=0; i<=n; i++) dp[i][i+1]=0;        for(int i=n; i>=0; i--){            for(int j=i+1; j<=n+1; j++){                for(int k=i+1; k<j; k++){                    dp[i][j]=min(dp[i][j],dp[i][k]+dp[k][j]+(num[j]-num[i]));                }            }        }        printf("The minimum cutting is %d.\n",dp[0][n+1]);    }    return 0;}
0 0
原创粉丝点击