首页 > 其他分享 >P9732 [CEOI2023] Trade

P9732 [CEOI2023] Trade

时间:2024-04-07 21:33:42浏览次数:24  
标签:log 分治 mid Trade P9732 CEOI2023 端点 区间 考虑

题意

一个区间,你需要在其中选出一段大于 \(k\) 的区间。

使得前 \(k\) 大的 \(s_i\) 减去区间 \(c_i\) 之差最大。

问,价值最大是多少,以及哪些点可以成为被选择的价值最大的区间的前 \(k\) 大的点。

Sol

摆摆摆,颓颓颓。

注意到有决策单调性,考虑怎么证明。

显然,设 \(f_i = \max w(i, j)\)。

有:

\[w(a, c) + w(b, d) \le w(a, b) + w(c, d) \]

注意到 \(c_i\) 的贡献相同。

\[w'(a, c) + w'(b, d) \le w'(a, b) + w'(c, d) \]

即证:

\[w'(a, b) + w'(a + 1, b + 1) \ge w'(a, b + 1) + w'(a + 1, b) \]

注意到对于新加入的 \(a + 1\),\(b + 1\) 两个点,在左边显然可以替换掉最小值与次小值,而在右边若最小值与次小值在同一区间,会更劣。

因此我们简单证明了决策单调性。

接下来就好做了,考虑分治,用 \(l, r\) 与 \(L, R\) 分别表示左端点的区间,与右端点的区间。

每次考虑当前的 \(mid\),暴力枚举所有右端点,找到最优右端点。

递归 \(l, mid - 1\) 与 \(L, pos\),以及 \(mid + 1\) 与 \(pos, R\) 即可。

考虑如何快速计算当前区间的答案。

对于 \(c\) 显然是 trivial 的,不再赘述。

考虑如何求出一个区间的前 \(k\) 大 \(s_i\)。

这显然可以直接来一发可持久化线段树。

考虑更优秀的做法。

注意到其实每次移动的区间并不多,可以使用类似莫队的方式暴力移动。

为什么移动区间量是 \(O(n \log n)\) 的?

可以考虑这样一件事情,对于左端点显然移动次数为 \(n\),对于右端点,对于每个分治区间最劣情况下会跑满,而分治区间的总量显然是 \(O(n \log n)\) 级别的。

因此,使用两个对顶堆维护插入删除,总复杂度 \(O(n \log ^ 2 n)\)。

考虑第二问,我们在分治的过程中记录下最大的价值,以及当前区间的第 \(k\) 大值。

直接使用区间求 \(min\) 线段树覆盖,单点查询即可。

总时间复杂度:\(O(n \log ^ 2 n + n \log n)\)。

标签:log,分治,mid,Trade,P9732,CEOI2023,端点,区间,考虑
From: https://www.cnblogs.com/cxqghzj/p/18119973

相关文章

  • 揭秘MCATrader平台:让投资更简单、更低成本
    在如今这个充满变数和挑战的投资世界里,寻找一个专业、可靠且费用合理的投资平台至关重要。作为一家专注于服务公众投资者的独立投资品牌,MCATrader致力于为您提供最优质的交易产品和服务。自成立以来,MCATrader始终秉承着“客户至上”的核心价值观,坚持以客户需求为导向,不断优化......
  • P9732 [CEOI2023] Trade
    洛谷传送门LOJ传送门考虑第一问,设一个区间的价值\(g(l,r)\)为\(f(l,r)-a_r+a_{l-1}\),其中\(a_i=\sum\limits_{j=1}^ic_j\),\(f(l,r)\)为\([l,r]\)中最大的\(k\)个\(b_i\)的和,设\(p_i\)为以\(i\)为右端点,区间价值最大的左端点,那么\(p_i\)满足决......
  • 量化交易入门(十六)Backtrader、Zipline、PyAlgoTrade对比分析
    量化交易发展这么多年,有很多优秀的前辈为我们提供了各种开源的交易回测系统,我将对常用的Backtrader、Zipline、PyAlgoTrade这三个量化交易回测平台进行详细介绍,并进行对比分析。一、Backtrader概述:Backtrader是一个Python的事件驱动型回测框架,由社区驱动开发,功能全面且灵......
  • CF1618G Trader Problem 题解
    题目链接:CF或者洛谷本题挺有意思的,我们观察到\(\lek\)这个限制使得我们可以将原序列进行分组,把\(\lek\)的限制的元素放在一组中,那么根据题意,这组当中任意元素之间都是可以互相交换的,包括系统用品。那么假设一组中有\(x\)个自身的物品,\(y\)个系统物品,那么这\(x+y\)物......
  • trade calculator tcalc.py
    代码片#-*-coding:utf-8-*-importsysimportgetopt#fromqsutilimportgspaceasgsfromqsutilimportpklfname='c:\\GTJA\\RichEZ\\newVer\\cnt.pkl'#cn_dict=gs.pkl.pkl_load(fname)cn_dict=pkl.pkl_load(fname)classCBo......
  • CEOI2023D1T3(LOJ4019) Brought Down the Grading Server? (分治+欧拉回路)
    因为我们有\(S=2^k\),所以我们先考虑\(k=1\)即\(S=2\)的时候应该怎么做。发现如果我们对于每一个核心从\(t_1\)向\(t_2\)连一条无向边,如果我们把「不交换\(t_1,t_2\)」看成将这条边定向为\(t_1\tot_2\),否则如果「交换\(t_1,t_2\)」看成将这条边定向为\(t_2\tot_1......
  • 券商Ridder Trader牌照监管力度小,虚假宣传交易工具!
        毒舌君最近在网上看到一家券商RidderTrader,在要懂汇上了解到这家有澳大利亚牌照的券商,评分也只有3.78分,这是非常不推荐投资的,我们来查查这券商为何这么低分!一、牌照  1.澳大利亚牌照毒舌君在澳大利亚(ASIC)官网查到RIDDERTRADERPTYLTD的澳大利亚AR牌照确实受到监管。......
  • ProTradex(PRT)普瑞缇/提智能合约系统开发实现技术方案及源码解析
      区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。 区块链助推供应链上的数据更加透明,供应链上的企业可以准确的使用端到端的透明数据,区块链技术可以有效的对供应链上企业的交易进行数字化的处理,并且可以建立一个分散式的不可更改的所有......
  • 分享一套 MT4 crm MT4 MT5 CRM源码、web trade交易系统
    一套MT4MT5CRM源码,有跟单社区,同时支持MT4进行对接使用,支持代理返佣自由进行设置,可自动实时同步manager后台分组、交易品种和客户所有信息。包括带有内部实时内转功能,支持任何第三方支付、区块链和电子钱包。整套系统功能齐全。可节约公司大量租用成本和防止第三方公司泄露客户资......
  • WonderTrader 源码解析与改造-通用的dll加载器(未完待续)
    背景笔者学习WonderTrader的源码的一些心得体会,本文基于WonderTrader0.9.8,讲解其中的DLLHelper类先看它的应用1.wondertrader\src\TestTrader\main.cpp2.wondertrader\src\Includes\ITraderApi.h3.wondertrader\src\TraderCTP\TraderCTP.cpp......