满背包与dfs比较
来源:互联网 发布:zookeeper nginx 整合 编辑:程序博客网 时间:2024/05/18 10:28
题目描述:
第七题
小y 有一个宽度为 100cm,高度为 20cm,深度为 1cm 的柜子,如下图。
小y 还有 3636 个礼物盒,他们的深度都为 1cm。
他们对应的宽度和高度如下,单位(cm)。
现在小y 想把这些盒子放到柜子上,由于礼物盒里面都装有礼物,礼物盒必须向上放置,并且不能堆放。由于礼物盒深度和柜子深度一样,所以礼物盒和柜子深度方向也必须一致。并且礼物盒的高度还不能大于柜子的高度,否者放不进去。小y 希望放到柜子上礼物盒的宽度和正好等于柜子的宽度,也就是希望柜子两边都不存在间隙。如下图符合条件的放置。
满足条件的情况下,小y 希望能尽可能多的放置礼物盒,算出最多能放多少个礼物盒。
#include<cstdio>#include<iostream>using namespace std;#include<ctime>int a[100],b[100],ans=-1;void dfs(int cur,int s,int k){if(s>100||cur>36) return;if(s==100){ans=max(ans,k);return;}dfs(cur+1,s,k);dfs(cur+1,s+a[cur+1],k+1);}int main(){freopen("1.txt","r",stdin);for(int i=1;i<36;i++)cin>>a[i];int t1,t2;t1=clock();dfs(0,0,0);t2=clock();cout<<ans<<endl<<"时间:"<<t2-t1<<endl;return 0;}//运行结果:18 161603
#include<cstdio>#include<iostream>#include<ctime>using namespace std;int a[100],b[100],ans=-1;void dfs(int cur,int s,int k){if(s>100||cur>36) return;if(s==100){ans=max(ans,k);return;}for(int i=cur+1;i<=35;i++)dfs(i,s+a[cur+1],k+1);}int main(){freopen("1.txt","r",stdin);for(int i=1;i<36;i++)cin>>a[i];int t1,t2;t1=clock();dfs(0,0,0);t2=clock();cout<<ans<<endl<<"时间:"<<t2-t1<<endl;return 0;}//运行结果: 18 47772
//装满的01背包#include<cstdio>#include<iostream>#include<cstring>#include<ctime>using namespace std;int main(){freopen("1.txt","r",stdin);int dp[110],a[37],b[37],n;for(int i=1;i<=35;i++)cin>>a[i];int t1,t2;t1=clock();memset(dp,-0x3f3f3f3f,sizeof(dp));dp[0]=0;for(int i=1;i<=35;i++)for(int j=100;j>=a[i];j--)dp[j]=max(dp[j],dp[j-a[i]]+1);t2=clock();cout<<dp[100]<<endl<<"时间:"<<t2-t1<<endl;return 0;}//结果:18 0
118111612610171065219475515315119179410121719201110203
1 0
- 满背包与dfs比较
- poj3628-DFS/0-1背包-DP/枚举-数据比较弱、方法比较多
- DFS(背包问题)
- dfs 简单背包问题
- DFS 做背包问题
- dfs 解二维背包
- 【转载】八数码问题BFS与DFS的比较
- DFS解决01背包问题
- 01背包的DFS解法
- poj1014 dfs/背包/类筛法求素数
- hdu3448(dfs解二维背包)
- hdu5887 大01背包--dfs
- Scales(dfs背包+剪枝)
- BFS, DFS分析比较
- hdu1026 Ignatius and the Princess I --BFS & 记录路径 & 与DFS的比较
- BFS和DFS的比较
- SDUT3303 来发背包开开胃(模拟背包) ,DFS
- POJ1252 完全背包 dp 搜索 dfs bfs
- ubuntu14.04 安装anaconda+pycharm+cuda+cudnn+theano0.90+keras2.0.2+tensorflow1.1.0
- gcc编译
- CCF NOI1009 分配任务
- 实验楼第四期楼赛
- python seaborn画图
- 满背包与dfs比较
- (蓝桥杯第五届B组)李白打酒 DFS
- 论生命之美好与自由的关系
- CodeForce 534C Polycarpus' Dice (数学推理)
- 三角形面积
- vxWorks启动时间
- servlet服务器内部跳转与重定向(外部跳转)的区别
- 简易登陆限制
- 安卓逆向系列教程 4.13 MagSearch 1.8 爆破