首页 > 其他分享 >[CTSC2018] 混合果汁

[CTSC2018] 混合果汁

时间:2024-07-14 18:51:44浏览次数:9  
标签:树状 int rval 混合 CTSC2018 数组 果汁 st

先考虑如何处理单个询问,看到了最大值最小,不难想到二分

但是为了整体二分的方便,这个check函数必须这么写:先将果汁以美味度排序,然后以价格为下标建立树状数组,将美味度不低于\(mid\)的果汁扔进树状数组里面(注意有两个树状数组,一个用来几率体积,另一个用来记录体积乘以价格),然后再二分价格,用第一个树状数组找到能买到当前所需要的体积的果汁的最小价格(i.e,如果买的果汁的价格低于这个价格,那么就算把低于这个价格的果汁全买了,得到的体积也比所需要的体积小,而把不超过这个价格的所有果汁都买了就能得到不低于所需要体积的果汁),然后再利用另一个树状数组判断买下这些果汁是否超过已有钱数

整体二分的话,这里就不能像之前那样子将果汁分成两部分了,因为每次check都需要用到整个果汁序列的,只能将小朋友分成两个部分;然而为了减少时间复杂度,我们假设在刚进入函数solve(int lval,int rval,int st,int ed)(表示对于属于\(st\) ~ \(ed\)的小朋友,他们的答案在\(lval\)和\(rval\)之间)时,树状数组存储了大于\(rval\)的果汁信息,于是我们就要先将\([mid+1,rval]\)的果汁信息扔进树状数组里面,而且在进入solve(mid+1,rval,st+lt,ed)之前要还原树状数组(注意进入solve(lval,mid,st,st+lt-1)不用还原)

具体可以见代码

这道题目就告诉我们不一定非要将序列分成两部分,有可能是会用到整个序列的,这个时候在必要时还原就好了

标签:树状,int,rval,混合,CTSC2018,数组,果汁,st
From: https://www.cnblogs.com/dingxingdi/p/18301876

相关文章

  • 基于贝叶斯优化CNN-LSTM混合神经网络预测(Matlab代码实现)
    ......
  • 基于贝叶斯优化CNN-LSTM混合神经网络预测(Matlab代码实现)
    ......
  • R语言广义加性混合模型(GAMM)分析长沙气象因子、空气污染、PM2.5浓度、显著性检验、逐
    全文链接:https://tecdat.cn/?p=32981原文出处:拓端数据部落公众号气候变化和空气污染对现代社会产生了越来越大的影响。在这种背景下,研究气象和空气污染之间的关系以及其对PM2.5浓度的影响变得非常重要。为了更好地理解和解释这些关系,广义加性混合模型(GAMM)成为一种强大的工具。......
  • 基于协同过滤混合算法的餐饮推荐系统设计与实现
    基于协同过滤混合算法的餐饮推荐系统设计与实现DesignandImplementationofRestaurantRecommendationSystemBasedonHybridCollaborativeFilteringAlgorithm完整下载链接:基于协同过滤混合算法的餐饮推荐系统设计与实现文章目录基于协同过滤混合算法的餐饮......
  • vue 混合方法mixins 协可以写入公共的方法
    新建一个文件夹mixins 同views同级exportdefault{data(){return{};},mounted(){},methods:{//修改标题方法ready(callback){//如果jsbridge已经注入则直接调用if(window.AlipayJSBridge){callback......
  • 【智能算法改进】一种混合多策略改进的麻雀搜索算法
    目录1.算法原理2.改进点3.结果展示4.参考文献5.代码获取1.算法原理【智能算法】麻雀搜索算法(SSA)原理及实现2.改进点精英反向学习策略将精英反向学习策略应用到初始化阶段,通过反向解的生成与精英个体的选择,不仅使算法搜索范围得到扩大,提高了全局搜索的能力......
  • NodeJS蔬菜自产零售混合销售平台-计算机毕业设计源码10149
    摘 要随着移动互联网的快速发展,购物方式也发生了巨大的变化。蔬菜作为消费者生活中必不可少的商品之一,在移动互联网时代也迎来了新的购物方式——购物小程序。购物小程序是一种基于手机应用平台的轻量级应用程序,用户可以通过它方便地浏览、选择和购买蔬菜。本文介绍了一个......
  • 分布式混合并行训练关键技术解读
    为个人参与深度学习框架飞桨PaddlePaddle开发时,梳理的个人笔记。一、并行方式1.数据并行(Batch维度)数据并行分为了两种模式:DataParallel(DP)和DistributedDataParallel(DDP)。1.1DataParallelDP是一种单进程多线程的并行策略,只能在单机上进行训练,从卡做Forward和Backw......
  • C#开发一个混合Windows服务和Windows窗体的程序
    很多时候,我们希望服务程序可以直接运行,或者可以响应一些参数,这时候,混合Windows服务和Windows窗体的程序就排上用场了。要实现同时支持Windows服务和Windows窗体,需要在启动的第一步时判断当前运行环境是否为服务模式,可以从以下几个方面进行判断:会话ID:Process.SessionId,获取当前......
  • C#开发一个混合Windows服务和Windows窗体的程序
    很多时候,我们希望服务程序可以直接运行,或者可以响应一些参数,这时候,混合Windows服务和Windows窗体的程序就排上用场了。要实现同时支持Windows服务和Windows窗体,需要在启动的第一步时判断当前运行环境是否为服务模式,可以从以下几个方面进行判断:当前用户名称:Environment.UserName,......