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

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

分析:

背包,写的时候记住

不要手残

这里写代码片#include
#include
#include
using namespace std;const int N=100005;int f[32005];int w[N],v[N],tot=0;int fj[N][2];bool p[N];int n,m;int main(){ scanf("%d%d",&n,&m); memset(p,1,sizeof(p)); for (int i=1;i<=m;i++) { int u,e,z; scanf("%d%d%d",&u,&e,&z); w[i]=u; v[i]=e*u; if (z) //附件 p[i]=0,fj[z][fj[z][0]==0 ? 0:1]=i; } for (int i=1;i<=m;i++) for (int j=n;j>=w[i];j--) if (p[i]) { f[j]=max(f[j],f[j-w[i]]+v[i]); if (fj[i][0]&&j>=w[i]+w[fj[i][0]]) f[j]=max(f[j],f[j-w[i]-w[fj[i][0]]]+v[i]+v[fj[i][0]]); if (fj[i][1]&&j>=w[i]+w[fj[i][1]]) f[j]=max(f[j],f[j-w[i]-w[fj[i][1]]]+v[i]+v[fj[i][1]]); if (fj[i][0]&&fj[i][1]&&j>=w[i]+w[fj[i][0]]+w[fj[i][1]]) f[j]=max(f[j],f[j-w[i]-w[fj[i][0]]-w[fj[i][1]]]+v[i]+v[fj[i][0]]+v[fj[i][1]]); } printf("%d",f[n]); return 0;}

转载于:https://www.cnblogs.com/wutongtong3117/p/7673305.html

你可能感兴趣的文章
去除IDEA报黄色/灰色的重复代码的下划波浪线
查看>>
Linux发送qq、网易邮件服务配置
查看>>
几道面试题
查看>>
【转】使用 WebGL 进行 3D 开发,第 1 部分: WebGL 简介
查看>>
js用正则表达式控制价格输入
查看>>
chromium浏览器开发系列第三篇:chromium源码目录结构
查看>>
java开发操作系统内核:由实模式进入保护模式之32位寻址
查看>>
第五讲:单例模式
查看>>
Python编程语言的起源
查看>>
Azure ARMTemplate模板,VM扩展命令
查看>>
使用Masstransit开发基于消息传递的分布式应用
查看>>
[CF808A] Lucky Year(规律)
查看>>
关于推送遇到的一些问题
查看>>
寒假作业3 抓老鼠啊~亏了还是赚了?
查看>>
Orcal Job创建实例
查看>>
Django
查看>>
批量Excel数据导入Oracle数据库(引用 自 wuhuacong(伍华聪)的专栏)
查看>>
处理移动障碍
查看>>
优化VR体验的7个建议
查看>>
2015年创业中遇到的技术问题:21-30
查看>>