旅游网站建设的相关报价昌平企业网站建设
旅游网站建设的相关报价,昌平企业网站建设,wordpress多主题投票,2019做网站图片用什么格式这道题卡了挺久的QAQ现在才搞定
Description 金明今天很开心#xff0c;家里购置的新房就要领钥匙了#xff0c;新房里有一间金明自己专用的很宽敞的房间。更让他高兴的是#xff0c;妈妈昨天对他说#xff1a;“你的房间需要购买哪些物品#xff0c;怎么布置#x…这道题卡了挺久的QAQ现在才搞定
Description 金明今天很开心家里购置的新房就要领钥匙了新房里有一间金明自己专用的很宽敞的房间。更让他高兴的是妈妈昨天对他说“你的房间需要购买哪些物品怎么布置你说了算只要不超过N元钱就行”。今天一早金明就开始做预算了他把想买的物品分为两类主件与附件附件是从属于某个主件的下表就是一些主件与附件的例子 主件 附件 电脑 打印机扫描仪 书柜 图书 书桌 台灯文具 工作椅 无 如果要买归类为附件的物品必须先买该附件所属的主件。每个主件可以有0个、1个或2个附件。附件不再有从属于自己的附件。金明想买的东西很多肯定会超过妈妈限定的N元。于是他把每件物品规定了一个重要度分为5等用整数1~5表示第5等最重要。他还从因特网上查到了每件物品的价格都是10元的整数倍。他希望在不超过N元可以等于N元的前提下使每件物品的价格与重要度的乘积的总和最大。 设第j件物品的价格为v[j]重要度为w[j]共选中了k件物品编号依次为j1j2……jk则所求的总和为 v[j1]*w[j1]v[j2]*w[j2] …v[jk]*w[jk]。其中*为乘号 请你帮助金明设计一个满足要求的购物单。 Input 输入的第1行为两个正整数用一个空格隔开 N m 其中N32000表示总钱数m60为希望购买物品的个数。 从第2行到第m1行第j行给出了编号为j-1的物品的基本数据每行有3个非负整数 v p q 其中v表示该物品的价格v10000p表示该物品的重要度1~5q表示该物品是主件还是附件。如果q0表示该物品为主件如果q0表示该物品为附件q是所属主件的编号 Output 输出只有一个正整数为不超过总钱数的物品的价格与重要度乘积的总和的最大值200000。 Sample Input 1000 5 800 2 0 400 5 1 300 5 1 400 3 0 500 2 0 Sample Output 2200 解题思路 恕我直言这道题我开始是真的没动脑一直以为它很难其实转换一下就是01背包了~\(≧▽≦)/~。咳咳我们仔细看一下这里就3种情况一是没有附件二是有一个附件三是两个附件。然后再推一下我们用X表示原件A表示附件1B表示附件2。当没有附件时情况为X。当有一个附件时情况为XXA。当有两个附件时情况为XXAXBXAB。然后判断一下就成了01背包。 代码
#includecstdio #includeiostream using namespace std; int w[32005],c[32005],a[32005][4],f[32005],m,n,t,p[32005],x,w1,w2; int c1,c2,c3,w3,ww,n1,n2,n3; int main() { scanf(%d%d,m,n); for (int i1;in;i) { scanf(%d%d%d,w[i],c[i],p[i]); c[i]c[i]*w[i];//求价值 if (p[i]0) { t; a[t][1]i; p[i]t; a[t][0]1; } else { a[p[p[i]]][a[p[p[i]]][0]]i; p[i]p[p[i]]; }
//将背包分组 } for (int i1;it;i) for (int jm;j0;j--) { if (jw[a[i][1]])//只选主件 { f[j]max(f[j],f[j-w[a[i][1]]]c[a[i][1]]); } if (jw[a[i][1]]w[a[i][2]] a[i][0]2) //选主件和附件A { f[j]max(f[j],f[j-w[a[i][1]]-w[a[i][2]]]c[a[i][1]]c[a[i][2]]); } if (jw[a[i][1]]w[a[i][3]] a[i][0]3) //选主件和附件B { f[j]max(f[j],f[j-w[a[i][1]]-w[a[i][3]]]c[a[i][1]]c[a[i][3]]); } if (jw[a[i][1]]w[a[i][2]]w[a[i][3]] a[i][0]3) //选主件附件A和附件B { f[j]max(f[j],f[j-w[a[i][1]]-w[a[i][2]]-w[a[i][3]]]c[a[i][3]]c[a[i][1]]c[a[i][2]]); } } printf(%d,f[m]); }
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/92344.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!