算法训练 装箱问题 递归动态规划
2017-05-23 21:13
218 查看
算法训练 装箱问题
时间限制:1.0s 内存限制:256.0MB
问题描述
有一个箱子容量为V(正整数,0<=V<=20000),同时有n个物品(0<n<=30),每个物品有一个体积(正整数)。
要求n个物品中,任取若干个装入箱内,使箱子的剩余空间为最小。
输入格式
第一行为一个整数,表示箱子容量;
第二行为一个整数,表示有n个物品;
接下来n行,每行一个整数表示这n个物品的各自体积。
输出格式
一个整数,表示箱子剩余空间。
样例输入
24
6
8
3
12
7
9
7
样例输出
0#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
int n;
int a[10000]={0};
int vis[10000]={-1};
int mark[31]={0};
int mi[20001];
int dp(int s)//需要一个数组min
{
if(mi[s]!=20000)return mi[s];
for(int i=0;i<n;i++)
{
if(mark[i]==0)
{
mark[i] = 1;
if(s-a[i]>=0)
mi[s] = min(mi[s],dp(s-a[i]));//总于AC了
mark[i] = 0;
}
}
if(mi[s]>s)mi[s]=s;
return mi[s];
}
int main()
{
memset(vis,-1,sizeof(vis));
for(int i=0;i<20001;i++)
mi[i]=20000;
int v;
cin>>v>>n;
for(int i=0;i<n;i++)
{
cin>>a[i];
}
dp(v);
cout<<mi[v];
return 0;
}
时间限制:1.0s 内存限制:256.0MB
问题描述
有一个箱子容量为V(正整数,0<=V<=20000),同时有n个物品(0<n<=30),每个物品有一个体积(正整数)。
要求n个物品中,任取若干个装入箱内,使箱子的剩余空间为最小。
输入格式
第一行为一个整数,表示箱子容量;
第二行为一个整数,表示有n个物品;
接下来n行,每行一个整数表示这n个物品的各自体积。
输出格式
一个整数,表示箱子剩余空间。
样例输入
24
6
8
3
12
7
9
7
样例输出
0#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
int n;
int a[10000]={0};
int vis[10000]={-1};
int mark[31]={0};
int mi[20001];
int dp(int s)//需要一个数组min
{
if(mi[s]!=20000)return mi[s];
for(int i=0;i<n;i++)
{
if(mark[i]==0)
{
mark[i] = 1;
if(s-a[i]>=0)
mi[s] = min(mi[s],dp(s-a[i]));//总于AC了
mark[i] = 0;
}
}
if(mi[s]>s)mi[s]=s;
return mi[s];
}
int main()
{
memset(vis,-1,sizeof(vis));
for(int i=0;i<20001;i++)
mi[i]=20000;
int v;
cin>>v>>n;
for(int i=0;i<n;i++)
{
cin>>a[i];
}
dp(v);
cout<<mi[v];
return 0;
}
相关文章推荐
- 蓝桥杯 ALGO-21算法训练 装箱问题(动态规划,01背包)
- Java企业面试算法新得体会之4递归和动态规划问题17问
- 基础算法系列总结:动态规划(解公司外包成本问题)
- 算法之动态规划——编辑距离问题
- (基于Java)算法之动态规划——0-1背包问题
- 算法训练 装箱问题
- 【算法学习笔记】43.动态规划 逆向思维 SJTU OJ 1012 增长率问题
- 动态规划经典算法之矩阵连乘问题源代码
- 动态规划解乘法表问题——算法解题报告
- 背包问题---递归及动态规划
- 格子取数问题的动态规划和递归解法之比较
- 蓝桥杯 算法训练 装箱问题 (DP)
- 算法之动态规划 之 子问题重叠和最优子结构
- C++实现算法导论十五章动态规划之钢条分割问题
- 石子合并;圈型;动态规划;重点在于处理圈型问题;代码内有算法解释;
- 算法:动态规划解 0-1 背包问题
- 流水线调度问题实现(动态规划基础---------问题取自算法导论)
- 装配线调度问题 算法导论动态规划P194
- 华为训练题目:初级——合唱队(递增子序列,DP动态规划问题)
- 动态规划6-背包问题+记忆递归