using System;
using System.Collections.Generic;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
/*===========贪婪算法(动态规划问题)==============
钢条切割问题
某公司出售钢条,出售价格与钢条长度之间的关系如下表:
长度i(米) 1 2 3 4 5 6 7 8 9 10
价格p(元) 1 5 8 9 10 17 17 20 24 30
问题:现有一段长度为n的钢条和上面的价格表,求切割钢条方案,使得总收益最大。
举个栗子,下面列出的是0-10的最优收益
长度(米) 0 1 2 3 4 5 6 7 8 9 10
最大利益(元) 0 1 5 8 10 13 17 18 22 25 30
说明:长度1的时候不用切就是1,
长度2的时候可以切1+1,可以不切5,得到5,
长度3的时候,首先不切是8,切1和2,2还可以切,但是2其实我们之前已经切过了,最优是5,
所以不用继续考虑了,1和2就是1+5=6,最优是8,
直接看长度8的时候,可以不切20,可以切1和7,7之前也考虑过了是17,
所以1和7就是1+18=19,最后发现最优是2和6,也就是5+17=22。
C# 算法系列 - 贪婪算法(动态规划问题)
最新推荐文章于 2025-05-30 09:57:18 发布