首页 > 编程语言 >贪心算法--背包问题--分数背包

贪心算法--背包问题--分数背包

时间:2023-08-18 23:11:12浏览次数:48  
标签:背包 weight -- backpack stuffs total 贪心

博客地址:https://www.cnblogs.com/zylyehuo/

# -*- coding: utf-8 -*-

stuffs = [(60, 10), (100, 20), (120, 30)]  # 每个商品元组表示(价格, 重量)
stuffs.sort(key=lambda x: x[0] / x[1], reverse=True)


def fractional_backpack(goods, w):
    m = [0 for _ in range(len(goods))]
    total_v = 0
    for i, (price, weight) in enumerate(goods):
        if w >= weight:
            m[i] = 1
            total_v += price
            w -= weight
        else:
            m[i] = w / weight
            total_v += m[i] * price
            break
    return [total_v, m]


print("=========================分数背包问题=========================")
print(f"共{fractional_backpack(stuffs, 50)[0]}元,各买{fractional_backpack(stuffs, 50)[1]}")
print("============================================================")

标签:背包,weight,--,backpack,stuffs,total,贪心
From: https://www.cnblogs.com/zylyehuo/p/17641798.html

相关文章

  • 容器内部使用的比较函数书写方式
    例如:priority_queue为例子。#include<queue>std::priority_queue<Type,Container,Compare>pq;type:优先队列中存储的元素的数据类型。Container:存储元素的底层容器类型,默认为std::vector<Type>Compare:比较函数或函数对象,用于定义元素的比较原则,可以是一个函数指针、函数对象......
  • 容器内部使用的比较函数书写方式
    例如:priority_queue为例子。#include<queue>std::priority_queue<Type,Container,Compare>pq;type:优先队列中存储的元素的数据类型。Container:存储元素的底层容器类型,默认为std::vector<Type>Compare:比较函数或函数对象,用于定义元素的比较原则,可以是一个函数指针、函数对象......
  • 容器内部使用的比较函数书写方式
    例如:priority_queue为例子。#include<queue>std::priority_queue<Type,Container,Compare>pq;type:优先队列中存储的元素的数据类型。Container:存储元素的底层容器类型,默认为std::vector<Type>Compare:比较函数或函数对象,用于定义元素的比较原则,可以是一个函数指针、函数对象......
  • 容器内部使用的比较函数书写方式
    例如:priority_queue为例子。#include<queue>std::priority_queue<Type,Container,Compare>pq;type:优先队列中存储的元素的数据类型。Container:存储元素的底层容器类型,默认为std::vector<Type>Compare:比较函数或函数对象,用于定义元素的比较原则,可以是一个函数指针、函数对象......
  • 容器内部使用的比较函数书写方式
    例如:priority_queue为例子。#include<queue>std::priority_queue<Type,Container,Compare>pq;type:优先队列中存储的元素的数据类型。Container:存储元素的底层容器类型,默认为std::vector<Type>Compare:比较函数或函数对象,用于定义元素的比较原则,可以是一个函数指针、函数对象......
  • 【愚公系列】2023年08月 WPF控件专题 Button控件详解
    (文章目录)前言WPF控件是WindowsPresentationFoundation(WPF)中的基本用户界面元素。它们是可视化对象,可以用来创建各种用户界面。WPF控件可以分为两类:原生控件和自定义控件。原生控件是由Microsoft提供的内置控件,如Button、TextBox、Label、ComboBox等。这些控件都是WPF中常见......
  • C++中String的语法及常用接口用法
    在C语言中,string是一个标准库类(class),用于处理字符串,它提供了一种更高级、更便捷的字符串操作方式,string 类提供了一系列成员函数和重载运算符,以便于对字符串进行操作和处理。一、string类在学习string前,我们不妨先来了解一下string类到底是什么,有什么用呢?我们先来了解一下基本......
  • 193. 有效电话号码
    给定一个包含电话号码列表(一行一个电话号码)的文本文件 file.txt,写一个单行bash脚本输出所有有效的电话号码。你可以假设一个有效的电话号码必须满足以下两种格式:(xxx)xxx-xxxx或 xxx-xxx-xxxx。(x表示一个数字)你也可以假设每行前后没有多余的空格字符。示例:假设 file.txt ......
  • 我和 TiDB 的故事 | 远近高低各不同
    Hi,TiDB,Again!书接上回,《我和TiDB的故事|横看成岭侧成峰》,一年时光如白驹过隙,这一年我好似在TiDB上投入的时间总量不是很多,但是断断续续也一直有在关注使用。当然,数据是造不了假的,看热力图就知道我一直都在。只是每逢周末就忘记登录,所以直到现在也还没达到连续签到100......
  • GO语言八股
    string和[]byte转换会发生内存拷贝吗?在Go语言中,string和[]byte之间的转换会导致内存拷贝。这是因为string类型是不可变的,而[]byte类型是可变的。当进行string到[]byte的转换时,需要创建一个新的[]byte切片,并将string的数据复制到新的切片中。同样地,当进行[]byte到string的转换时,也......