首页 > 其他 > 详细

C2-Zexal的钢管切割

时间:2019-11-08 21:49:59      阅读:80      评论:0      收藏:0      [点我收藏+]

题目描述

在钢管切割的背景下,已经知道长度为1n的钢管的价值,给定长度为n的钢管在切割若干次(也可以不切割)所带来的最小价值是?

输入

多组数据输入

第一行一个整数n,为起始钢管长度(0<n1000

第二行n个整数,分别为长度为i的钢管的价值ti0<ti10^6

输出

对于每组数据,输出一行,为这根钢管所带来的最小价值T

输入样例

3
2 3 7

 

输出样例

 5

 

Hint

算法导论第三版15.1节

 

转移方程

dp[i] = min(dp[i-j] + dp[j], dp[i]);

代码

#include <iostream>
#include <stdio.h>
using namespace std;
long long n,dp[1003];
int main()
{
    while(~scanf("%d",&n))
    {
        for(int i = 1; i <= n; i++)
        {
            scanf("%d",&dp[i]);
        }
        for(int i = 1; i <= n; i++)
            for(int j = 1; j < i; j++)
                dp[i] = min(dp[i-j] + dp[j], dp[i]);
        printf("%d\n",dp[n]);
    }
    return 0;
}

 

C2-Zexal的钢管切割

原文:https://www.cnblogs.com/kubab119/p/11823254.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!