UVA62401背包,滚动数组,并打印路径
来源:互联网 发布:高并发web架构 java 编辑:程序博客网 时间:2024/06/05 13:33
很典型的01背包问题,小白书上写的很详细,不再讲,这里主要就是怎么打印路径,开一个额外的标记数组就行了,
另外这里没要求打印路径顺序,所以打印就行了。
#include<iostream>#include<cstdio>#include<cstring>#include<cstdlib>#include<cctype>#include<cmath>#include<algorithm>#include<string>#include<map>#include<queue>#include<stack>#include<set>#include<vector>#define LL long longusing namespace std;const int maxn=1e5+10;const double eps=1e-6;//const int MAX_INT=(1<<31)-1;int n,m,a[30],dp[maxn];bool vis[maxn][30];int main(){while(cin>>n>>m){memset(dp,0,sizeof(dp));memset(vis,0,sizeof(vis));for(int i=0;i<m;i++)cin>>a[i];for(int i=0;i<m;i++)for(int j=n;j>=a[i];j--){if(dp[j]<=dp[j-a[i]]+a[i]){dp[j]=dp[j-a[i]]+a[i];vis[j][i]=1;} } for(int i=m-1,j=n;i>=0;i--) { if(vis[j][i]) { printf("%d ",a[i]); j-=a[i]; } } printf("sum:%d\n",dp[n]);}return 0;}
0 0
- UVA62401背包,滚动数组,并打印路径
- 01背包之打印路径
- 简单背包问题+打印路径
- 0-1背包打印路径
- 01背包(滚动数组)
- 采药-01背包+滚动数组
- dp中滚动数组的应用:01背包、POJ 1159 Palindrome、多段图路径问题
- uva624 CD 01背包 打印路径
- uva 624 CD (01背包+打印路径)
- UVA 624 - CD (01背包打印路径)
- uva624(01背包+打印路径)
- UVA624(01背包 + 路径打印)
- pat1068 01背包 排序+打印路径
- uva 624 (01背包打印路径)
- uva 624 CD 01背包打印路径
- uva624 - CD(01背包+打印路径)
- POJ 2184(01背包+滚动数组)
- hdu 1203 01背包 滚动数组
- EditText可编辑状态和不可编辑状态切换 及其它特殊效果
- JSTL标签库:out标签
- 【bzoj1036】[ZJOI2008]树的统计Count
- 信息安全中的安全服务问题
- 图像增强之——同态滤波
- UVA62401背包,滚动数组,并打印路径
- 打算系统的学习下python3,既然是系统的,那就一步步记下来吧
- MySql 安装出错
- 面向对象设计时的若干考虑
- Android Studio 2.0 模拟器新功能介绍
- 标准c++string
- String 与 intern理解
- 飛飛(三十七)时间类,时间表(完整版)
- 【轮子介绍】android图片加载库:Glide的简单介绍