博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
选择附件物品选择(有依赖背包问题)
阅读量:5923 次
发布时间:2019-06-19

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

每日一贴,今天的内容关键字为选择附件

    /*

    

    物品选择

    Accepted : 13    Submit : 57

    Time Limit : 1000 MS   Memory Limit : 65536 KB

    3 2

    1 1

    2 1

    3 3

    Source

    duoxida

剖析:这是属于有依赖性的背包问题(参考背包2.7),
 首先对其附件进行优化处置。即01背包处置,因为每种情况是不重复的
 其次,将每组(包括主件i)看成是 v件物品,(k=1....v)其中每种物品占体积k,所得代价为c[k-1]+w[i](k-1,表现预处置得到附件最优解,再加上主件)
*/

    每日一道理
春蚕死去了,但留下了华贵丝绸;蝴蝶死去了,但留下了漂亮的衣裳;画眉飞去了,但留下了美妙的歌声;花朵凋谢了,但留下了缕缕幽香;蜡烛燃尽了,但留下一片光明;雷雨过去了,但留下了七彩霓虹。

    #include<string.h> #include<stdio.h> #include<algorithm> #include <iostream> using namespace std; const int maxn=1000+10; int w[maxn],b[maxn]; int f[maxn]; int max(int a,int b) { return a>b? a:b; } int main() { int n,v; int i,j,k; int t1,t2; while(scanf("%d%d",&n,&v)!=EOF) { for(i=1;i<=n;i++) { scanf("%d%d",&w[i],&b[i]); } memset(f,0,sizeof(f)); for(i=1;i<=n;i++) if(b[i]==i)//找出主件 { memset(c,0,sizeof(c)); for(t2=1;t2<=n;t2++)//对附件进行01背包处置,使得在雷同体积下得到的代价最大 if(b[t2]==i&&b[t2]!=t2) {for(t1=v-1;t1>=0;t1--) if(t1-1>=0) c[t1]=max(c[t1],c[t1-1]+w[t2]); } c[v]=c[v-1]+w[i]; for(j=v;j>=0;j--) for(k=1;k<=v;k++)//此时看作相当于"V件物品",每件”物品体积“相当为'k',"代价为",c[k-1]+w[i],(i为主件) {if(j-k>=0) f[j]=max(f[j],f[j-k]+w[i]+c[k-1]); } } printf("%d\n",f[v]); } return 0; }

文章结束给大家分享下程序员的一些笑话语录: 神灯新篇

一个程序员在海滩上发现了一盏神灯。他在灯上擦了几下,一个妖怪就从灯里跳出来说:“我是世界上法术最强的妖怪。我可以实现你的任何梦想,但现在,我只能满足你一个愿望。”程序员摊开了一幅中东地图说:“我想让中东得到永久的和平。”妖怪答道:“哦,我没办法。自打创世纪以来,那里的战火就没有停息过。这世上几乎没有我办不到的事,但这件事除外。”程序员于是说:“好吧,我是一个程序员,为许多用户编写过程序。你能让他们把需求表述得更清楚些,并且让我们的软件项目有那么一两次按进度按成本完成吗?”妖怪说:“唔,我们还是来看中东地图吧。”

--------------------------------- 原创文章 By

选择和附件
---------------------------------

转载地址:http://zrnvx.baihongyu.com/

你可能感兴趣的文章
Docker部署SDN环境
查看>>
XCode7,打包上传的一些警告,及参考处理方法
查看>>
Odoo中本日、本月、上月过滤器实现方法
查看>>
Python3字典中items()和python2.x中iteritems()有什么区别
查看>>
Android--带你一点点封装项目 MVP+BaseActivity+Retrofit+Dagger+RxJava(二)
查看>>
框架升级后某个类型所在程序集发生转移,应用还能正常运行吗?
查看>>
Ubuntu 16.04服务器安装及软件配置
查看>>
开头不讲"Hello Word",读尽诗书也枉然 : Word 操作组件介绍 - Spire.Doc (转)
查看>>
Differential Geometry之第三章曲面的局部理论
查看>>
【GoLang】golang中 channel 实现同步 与mutex/atomic 实现同步的讨论
查看>>
转: Git远程操作详解 (阮一峰)
查看>>
Maven生命周期
查看>>
105个软件测试工具大放送
查看>>
Docker探索系列2之镜像打包与DockerFile
查看>>
treegrid and datagrid ctrl or shift selectRow
查看>>
[转]CentOS 6.4下PXE+Kickstart无人值守安装操作系统
查看>>
分布式与集群的联系与区别
查看>>
不重新编译php安装配置eAccelerator
查看>>
_beginthreadex注意事项
查看>>
xcode 打包
查看>>