1070 Mooncake (25 分) 贪心

Mooncake is a Chinese bakery product traditionally eaten during the Mid-Autumn Festival. Many types of fillings and crusts can be found in traditional mooncakes according to the region’s culture. Now given the inventory amounts and the prices of all kinds of the mooncakes, together with the maximum total demand of the market, you are supposed to tell the maximum profit that can be made.
Note: partial inventory storage can be taken. The sample shows the following situation: given three kinds of mooncakes with inventory amounts being 180, 150, and 100 thousand tons, and the prices being 7.5, 7.2, and 4.5 billion yuans. If the market demand can be at most 200 thousand tons, the best we can do is to sell 150 thousand tons of the second kind of mooncake, and 50 thousand tons of the third kind. Hence the total profit is 7.2 + 4.5/2 = 9.45 (billion yuans).

Input Specification:

Each input file contains one test case. For each case, the first line contains 2 positive integers N (≤1000), the number of different kinds of mooncakes, and D (≤500 thousand tons), the maximum total demand of the market. Then the second line gives the positive inventory amounts (in thousand tons), and the third line gives the positive prices (in billion yuans) of N kinds of mooncakes. All the numbers in a line are separated by a space.

Output Specification:

For each test case, print the maximum profit (in billion yuans) in one line, accurate up to 2 decimal places.

Sample Input:

3 200
180 150 100
7.5 7.2 4.5

Sample Output:

9.45

Note

  1. 题意:已知总每种的总销售额和数量,求需求之内最大利润
  2. 注意测试点2卡住,amouts以千位单位,要是double型

Code

#include<iostream>
#include<algorithm>
using namespace std;
const int MAX = 1E5;
struct product{
	double amout;
	double sum_price;
	double value;
}products[MAX];
bool cmp(product a, product b){
	return a.value < b.value;
}

int main(){ 
    int num, i;
    int max_need;
    cin >> num >> max_need;
    for(int i = 0; i < num; i++){
        cin  >> products[i].amout;
    }
    for(int i = 0; i < num; i++){
        cin >>products[i].sum_price;
        if(products[i].amout != 0) products[i].value =products[i].sum_price /products[i].amout;
        else products[i].value = 0;
    }
    sort(products, products + num, cmp);
    int sell_num = 0;
    double sell = 0;
    int j = num - 1;
    while(sell_num + products[j].amout <= max_need && j >= 0){
        sell +=products[j].sum_price;
        sell_num +=  products[j].amout ;
        j--;
    }
    if( j >= 0 && sell_num+ products[j].amout  > max_need){
        sell += (max_need - sell_num) * products[j].value;
    }
    printf("%.2lf", sell);
    return 0;

}
### Mooncake简介 Mooncake 是由月之暗面 Kimi 联合清华大学等机构共同开发的一种以 KVCache 为核心的布式推理架构[^2]。该架构旨在提升大规模语言模型的推理性能,特别是在长上下文场景下的表现尤为突出。 #### 架构特点 Mooncake 的核心设计理念围绕着键值缓存(KVCache),通过布式的存储和计算离策略来优化资源利用效率[^4]。这种设计使得 Mooncake 在处理复杂任务时能够实现高吞吐量以及低延迟的表现。具体来说: - **高效资源管理**:通过对内存和网络带宽的有效配,减少冗余操作并提高整体系统的运行效率。 - **支持多样化应用需求**:无论是自然语言理解还是个性化推荐系统等领域都能受益于 Mooncake 提供的强大技术支持能力。 #### 配置说明 为了部署 Mooncake ,需要准备好相应的配置文件 `mooncake.json` 。此文件包含了预填充 URL、解码 URL 及元数据服务器地址等重要参数设置信息[^3]。下面是一个典型的 JSON 格式示例: ```json { "prefill_url": "192.168.0.137:13003", "decode_url": "192.168.0.139:13003", "metadata_server": "192.168.0.139:2379", "protocol": "rdma", "device_name": "erdma_0" } ``` 其中 `"protocol"` 字段可以选择 `"rdma"` 或者 `"tcp"` 来指定通信协议类型;而当选用 TCP 协议时,则需将 `"device_name"` 设置为空字符串[](^3])。 #### 性能优势对比析 基于模拟数据显示,在面对含有大量长序列输入的数据集时,相比其他同类解决方案如 vLLM , Mooncake 展现出更加优越的技术特性——即使是在严格遵循特定时间约束条件下仍可达到更高水平的服务质量(QoS)。以下是两者主要差异点总结表: | 特性 | Mooncake | vLLM | |--------------------|-----------------------------|-------------------------------| | 请求处理方式 | 批量 | 单独 | | 对SLO影响程度 | 较小 | 显著增加 | | 吞吐量增幅范围(%) | 50%-525% | — | 由此可见,得益于独特的两阶段解设计方案,Mooncake 成功规避了传统方法可能带来的负面效应,并实现了显著优于竞争对手的整体效能指标改进效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值