博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
多重背包
阅读量:7218 次
发布时间:2019-06-29

本文共 1126 字,大约阅读时间需要 3 分钟。

#include
#include
#include
#include
#include
#include
#include
using namespace std;int n,m;int v[9999],w[9999],s[9999];int f[9999];int main(){ scanf("%d%d",&n,&m); for(int i=1;i<=n;i++) scanf("%d%d%d",&v[i],&w[i],&s[i]); for(int i=1;i<=n;i++) for(int j=m;j>=0;j--) for(int k=0;k<=s[i];k++){ if(k*v[i]>j)break; f[j]=max(f[j],f[j-k*v[i]]+k*w[i]); } printf("%d",f[m]); return 0; }
#include
#include
#include
#include
#include
#include
#include
using namespace std;int n,m;int v[9999],w[9999],s[9999];int va[9999],wa[9999];int f[9999];int main(){ scanf("%d%d",&n,&m); for(int i=1;i<=n;i++) scanf("%d%d%d",&va[i],&wa[i],&s[i]); int ln=0; for(int i=1;i<=n;i++) { for(int j=1;j<=s[i];j++) { v[ln+1]=va[i]; w[ln+1]=wa[i]; ln++; } } for(int i=1;i<=ln;i++) for(int j=m;j>=v[i];j--) { f[j]=max(f[j],f[j-v[i]]+w[i]); } printf("%d",f[m]); return 0; }

转载于:https://www.cnblogs.com/dfsac/p/6819797.html

你可能感兴趣的文章
WC2018游记
查看>>
毕设开发日志2017-10-23
查看>>
***微信公众平台开发: 获取用户基本信息+OAuth2.0网页授权
查看>>
第二章 例题2-2 在屏幕上显示两个短句
查看>>
【转】iOS学习之适配iOS10
查看>>
OC语言BLOCK和协议
查看>>
C++创建一个动态链接库工程
查看>>
(六)maven之本地仓库
查看>>
如何使用 SPICE client (virt-viewer) 来连接远程虚拟机桌面?
查看>>
CentOS7
查看>>
linux高编IO-------tmpnam和tmpfile临时文件
查看>>
微信的机器人开发
查看>>
从零开始学Java(二)基础概念——什么是"面向对象编程"?
查看>>
近期面试总结(2016.10)
查看>>
CodeForces 525D Arthur and Walls :只包含点和星的矩阵,需要将部分星变成点使满足点组成矩形 : dfs+思维...
查看>>
积累_前辈的推荐
查看>>
strcpy和memcpy的区别《转载》
查看>>
在windows平台下electron-builder实现前端程序的打包与自动更新
查看>>
DroidPilot V2.1 手写功能特别版
查看>>
COOKIE欺骗
查看>>