伪代码

用二维数组记录,如果出现可以转移的dp那么记录bk[当前体积][装的物品]=1

输出的时候倒推,如果存在连通的边那么输出并且总共的体积减去输出的体积

代码(uva-624,目前wa不明所以,网上的答案也是那么输出的,或许要输出最多的物品?目前也不会这种玩法)

#include <bits/stdc++.h>
using namespace std;
int v[1000],dp[1000000],bk[1000][1000];
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int n,m;
while(cin>>m>>n)
{
memset(dp,0,sizeof(dp));
memset(bk,0,sizeof(bk));
stack<int> st;
for(int i=1;i<=n;i++)
cin>>v[i];
for(int i=1;i<=n;i++)
for(int j=m;j>=v[i];j--)
if(dp[j]<dp[j-v[i]]+v[i])
{
bk[j][i]=1;
dp[j]=dp[j-v[i]]+v[i];
}
for(int i=n,j=m;i>=1;i--)
if(bk[j][i])
st.push(v[i]),j-=v[i];
while(st.size())
{
cout<<st.top()<<" ";
st.pop();
}
cout<<"sum:"<<dp[m]<<"\n";
}
}

最新文章

  1. Windows phone应用开发[21]-图片性能优化
  2. 更加简洁易用——wangEditor富文本编辑器新版本发布
  3. ios安装cocoaPods
  4. easyui-简单用法寄一些属性
  5. struts2.3.24 + spring4.1.6 + hibernate4.3.11+ mysql5.5.25开发环境搭建及相关说明
  6. linq中查询列表的使用及iqueryable和list集合之间的转换
  7. UVa 二分图匹配 Examples
  8. [Locked] Paint House I &amp; II
  9. encode_utf8 把字符编码成字节 decode_utf8解码UTF-8到字符
  10. 在 Ubuntu 12.04 上通过安装源安装 Open vSwitch (OVS)
  11. (读书笔记)第2章 TCP-IP的工作方式
  12. FFT什么的
  13. nginx反向代理-解决前端跨域问题
  14. 用ImageJ快速分析和处理图像
  15. Java8之使用Optional进行Null处理
  16. [EXP]Microsoft Windows 10 - XmlDocument Insecure Sharing Privilege Escalation
  17. Spring基于的注解自动装配和依赖注入(***)
  18. 《FPGA全程进阶---实战演练》第一章之如何学习FPGA
  19. STL_算法_02_排序算法
  20. Could not open JDBC Connection for transaction; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Could not create connection to database server.

热门文章

  1. 简易 DBUtil 封装
  2. LightTable的结构(一)
  3. CPU上电时序详细分析
  4. Codeforces Round #395 (Div. 1)
  5. 10 探索其他Excel对象
  6. C# 简单实现直线方程,抛物线方程(转载)
  7. spring cloud config搭建说明例子(二)-添加eureka
  8. 洛谷P3371 【模板】单源最短路径(弱化版)(SPFA解法)
  9. js复制功能
  10. CodeDOMProvider 类