• 背包问题


    今天北京电子科技学院的一网友问我一题,我面熟,说用dp,可发现自己对dp理解不是很好,现在拿出买的《ACM程序设计培训教程》看到背包问题有那么多解法,现在学习中……
        小明假期同爸爸一起去书店,他选中了n本书,每本书的单价分别为:P1、P2、P3……Pn。不巧的是,小明的爸爸只带了M元钱,为了让小明渡过一个愉快的假期,爸爸仍然同意买书,但有一个要求,要小明从n本书中选出若干本,使得单价相加所得的和同M元最接近。你能够帮助小明解决这个问题吗? 
    要求:总钱数M、书本数n以及各本书的价格从键盘或文件输入;如果有多种组合,应全部列出。 现在还有一个要求:就是小明对每一种书都有一个兴趣度,从键盘输入,如果有相同的总价格,则考虑他们的总兴趣度,选择兴趣度大的输出。 
    Code
    用二进制位来标志买了哪本书,例如n=6,则需要2的0次方+……2的五次方,共6位,用k标示,m则为穷举的次数,一共有m种情况,用&就知道该本书在不在选择的范围之内,然后再选择最优的策略。我的代码最后interesting输出不出来,不知道怎么回事。这几天太忙,过两天再来看看。还有flag我想输出书的标号的,但是最后输出的是价格,想输出书的标号改一下就ok了。
  • 相关阅读:
    (一)Python入门-2编程基本概念:18字符串-驻留机制-内存分析-字符串同一判断-值相等判断
    (一)Python入门-2编程基本概念:07内置数据类型-基本算数运算符
    (一)Python入门-2编程基本概念:08整数-不同进制-其他类型转换成整数
    (一)Python入门-2编程基本概念:09浮点数-自动转换-强制转换-增强赋值运算符
    (一)Python入门-2编程基本概念:10时间表示-unix时间点-毫秒和微妙-time模块
    (一)Python入门-2编程基本概念:11布尔值-比较运算符-逻辑运算符及短路问题
    (一)Python入门-2编程基本概念:12同一运算符-整数缓存问题
    (一)Python入门-2编程基本概念:01程序的构成
    (一)Python入门-2编程基本概念:02对象的基本组成和内存示意图
    有关位运算的基础知识总结
  • 原文地址:https://www.cnblogs.com/anderson0/p/1569434.html
Copyright © 2020-2023  润新知