动态规划问题

来源:互联网 发布:迅雷极速版 mac 编辑:程序博客网 时间:2024/05/21 21:09

动态规划问题典型实例:

1. 有一个箱子的容量为v(正整数,0<=v<=20000),同时有n个物品(0<n<=30),每个物品有一个体积(正整数)。要求从n个物品中,任取若干个装入箱内,使得箱子的剩余空间为最小。

输入为 :箱子的容量,物品的种类,物品的体积

输出为: 箱子的剩余空间

#include "iostream"using namespace std;#define MAX 20000    //定义总空间的最大值static int Min[MAX]; //总空间对应的剩余最小值int minVolume(int *volume,int sum,int num,int i=0){    if(sum==0)        return 0;    if(i>=num||sum<volume[i])        return sum;    return min(minVolume(volume,sum,num,i+1),minVolume(volume,sum-volume[i],num,i+1));}int main(){    int sum,num;    int volume[30];    Min[0]=0;    cin>>sum;    cin>>num;    for(int i=0;i<num;i++)    {        cin>>volume[i];    }    cout<<minVolume(volume,sum,num);    return 0;}




0 0
原创粉丝点击