题目://S公司购买长钢条,将其切割为端钢条出售,切割工序本身没有成本支出,公司管理层希望知道最佳的切割方案
//假定我们知道S公司出售一段长为i英寸的钢条的价格为pi,钢条长度均为英寸
//长度:1 2 3 4 5 6 7 8 9 10
//价格:1 5 8 16 10 17 17 20 24 30
//给定一个长度为n英寸的钢条和一个价格表pi,求切割钢条方案,使得销售收益m最大
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
//钢条的长度
int n = sc.nextInt();
int changdu[] = {1,2,3,4,5,6,7,8,9,10};
int price[] = {1,5,8,16,10,17,17,20,24,30};
int dp[] = new int[n+1];
dp[0] = 0;
int value = d(dp,price,n);
System.out.println(value);
}
public static int d(int dp[],int price[],int n) {
//1:1
2:2+0 1+1
3:3+0 2+1
4:4+0 3+1 2+2
for(int i=1;i<=n;i++) {
for(int j=1;j<=i;j++) {
dp[i] = Math.max(dp[i], dp[i-j]+price[j-1]);
}
}
return dp[n];
}
}