UVA62401背包,滚动数组,并打印路径
2016-05-07 12:33
459 查看
很典型的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 long using 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 ); } return 0; }
相关文章推荐
- 信息安全中的安全服务问题
- 飛飛(三十七)时间类,时间表(完整版)
- c语言不使用加号实现两个数的相加
- Android Studio 2.0 模拟器新功能介绍
- Bin & Jing in wonderland(概率,组合数学)
- EditText可编辑状态和不可编辑状态切换 及其它特殊效果
- JSTL标签库:out标签
- 图像增强之——同态滤波
- GitHub学习笔记(更新中)
- 你是否愿意相信命运?
- 你是否愿意相信命运?
- 考试备战系列--软考--03综合知识复习
- iOS UIKit:TabBar Controller
- idea2016 创建maven web项目
- Block
- 继承构造函数
- 关于博主
- TeamTalk源码分析之login server
- Windows Sysinternals Suite_2016.05.07
- jslint