首页 > 其他分享 >JOI Final 2021

JOI Final 2021

时间:2023-10-19 19:55:55浏览次数:33  
标签:题意 text Final 2021 JOI mx

loj3469. 「JOI 2021 Final」雪球

发现 \(i\) 的答案只和相邻的两个数有关,且两边是独立的,不妨假设 \(a_i=0\),\(a_{i+1}=d\)。那么假设第 \(j\) 次操作 \(a_{i+1}\) 到达的最小位置是 \(d-mn_j\),\(a_i\) 到达最大位置是 \(mx_j\),那么第 \(j\) 次操作 \(i\) 拓宽的区间是 \((mx_{j-1},mx_j]\),\(a_{i+1}\) 已经拓宽的区间是 \([d-mn_{j-1},d]\),那么 \(i\) 的答案会加上 \(\max(0,\min(d-mn_{j-1},mx_j)-mx_{j-1})\)。考虑维护出 \(a_{i+1}-a_i=d\) 的答案 \(f(d)\),那么操作是区间加一次函数,差分一下维护即可。

loj3470. 「JOI 2021 Final」集体照

相当于交换使得 \(a_i+i\) 不降,玩一下可以发现合法序列一定是若干个公差为 \(-1\) 且值域连续的等差数列拼接而成,考虑每次填一段,只需要算这个情况下排列的逆序对数,二维前缀和一下就好了。

loj3471. 「JOI 2021 Final」机器人

因为这个颜色的限制很宽松,所以可以发现一条边总能交换到一个没有用过的颜色(菊花除外,但是菊花的答案是显然的),所以一条边交换的花费一定为 \(p_i\),不交换的花费是 \(sum_{u,c}-p\)。不过发现边的贡献和前一条边有一定的关系,可以发现只有前一条边和当前边颜色相同,且当前边不变,前一条边变的时候,贡献才会减少一个数。我们建立一个虚点表示钦定进入这种状态,然后直接跑 Dijkstra 即可。

有一些存疑的地方是改变其它的边可能会影响到路径上其它点的临边,这样权值可能会改变。不过可以发现直接走临边相当于会跳过一段路径,所以这么做是不优的。于是上述做法无后效性。

loj3472. 「JOI 2021 Final」地牢 3

原题意是不好做的,对着原题意硬做顶多得到一个基于维护凸包的单次线性做法。所以考虑转化题意。

把第 \(i\) 层地牢看做数轴上位置为 \(\sum_{j<i}a_j\) 的点(不妨写作 \(c_i\)),那么原问题等价于第 \(i\) 个点可以覆盖位置为 \([c_i,c_i+u)\) 的任意位置,覆盖一个位置的代价是 \(b_i\),求覆盖 \([c_{s},c_t)\) 中所有点的代价最小值。这是容易理解的,因为我们可以把加能量的过程看做是不断拓展能到达的位置的过程,而拓展位置容易理解为覆盖。

那么贪心做法就比较显然了:对于一个位置 \(p\),找到 \((p-u,p]\) 中代价最小的点,然后加进去即可。

考虑怎么做原问题。因为 \(u\) 会改变,所以直接维护贪心是十分不方便的,考虑进一步刻画。我们对于 \(i\),找到 \(i\) 的前驱 \(\text{pre}_i\) 和后继 \(\text{nxt}_i\),满足 \(b_{\text{pre}_i}\leq b_i,b_{\text{nxt}_i}<b_i\),且分别为所有位置中最大 / 最小的(不存在分别设为 \(-\infty\) 和 \(\infty\))。那么对于位置 \(p\),假设它被 \(i\) 覆盖,那么需要满足:\(p\geq c_i,p\geq c_{\text{pre}_i}+u,i<c_i+u,p<c_{\text{nxt}_i}\)。说明当 \(c_{\text{pre}_i}+u<c_{\text{nxt}_i}\) 的时候,\(p\) 的区间是 \([\max(c_i,c_{\text{pre}_i}+u),\min(c_i+u,c_{\text{nxt}_i}))\),其长度是段数为 \(\mathcal{O}(1)\),次数不超过 \(1\) 的关于 \(u\) 的分段函数,所以可以尝试开一个线段树,维护每个 \(u\) 的贡献,支持区间加一次函数和单点求值。

考虑加上区间的限制,发现右端点并不影响,可以使用差分等技巧解决(稍后提及)。那么我们扫描线枚举左端点 \(l\),分别维护每个点的贡献。注意当 \(\text{pre}_i<l\) 的时候,\(\text{pre}_i\) 视为不存在,所以需要在 \(l=i\) 的时候加入一次 \(i\),\(l=\text{pre}_i\) 的时候删除前面的 \(i\) 并重新加入一次带有 \(\text{pre}_i\) 限制的 \(i\)。考虑怎么解决右端点的限制,我们找到覆盖 \(c_r\) 的点,处理出它的区间 \([lp,rp]\),然后减去这段区间在 \([c_r,\infty)\) 处的贡献;之后,我们再找到覆盖 \(rp+1\) 的点 \(p\),补上 \([a_p,rp]\) 的贡献,并减去 \(l=p\) 时 \(u\) 的答案(相当于减去了后面一整段区间的贡献)。这样我们就得到了区间 \([l,r]\) 的答案。

code

标签:题意,text,Final,2021,JOI,mx
From: https://www.cnblogs.com/yllcm/p/17775474.html

相关文章

  • 20211102尹子扬 实验二 openssl命令测试
    点击查看代码openssldgst-sm3-outsn.sm3sn.txt3.(用od打印时发现有\n换行符,所以在第4步时不加-n,否则会生成错误的hash值)点击查看代码od-tc-Ansn.sm34.(正确的是不带-n的hash值)点击查看代码echo"20211102"|openssldgst-sm3代码截图:......
  • [JOISC 2021 Day2] 道路の建設案 (Road Construction)
    [JOISC2021Day2]道路の建設案(RoadConstruction)题意给定图上\(n\)个点,求前\(k\)小曼哈顿距离点对距离。题解很好的一道题。首先有一个\(O(nlog^2n)\)的做法,个人感觉还是很有启发性的。一般对于第\(k\)小的处理方法是二分,二分第\(k\)小的距离是多少。然后统......
  • Dreamweaver 2021 下载及安装教程 DW下载 软件激活版
    DreamweaverCC2017中文版简称为“DW”,它是由国外知名公司Adobe开发的一个集网页制作和管理网站于一身的所见即所得网页代码编辑器。拥有实时检查和CSS设计工具等多项增强功能,可以帮助用户更加轻松地创建和更新桌面平台和移动设备的网页内容,另外,它强大的快速检查功能可以帮助网页设......
  • [鹤城杯 2021]EasyP
    <?phpinclude'utils.php';if(isset($_POST['guess'])){$guess=(string)$_POST['guess'];if($guess===$secret){$message='Congratulations!Theflagis:'.$flag;}else{$mes......
  • 无涯教程-NumPy - join()函数
    此方法返回一个字符串,其中各个字符由指定的分隔符字符连接在一起。importnumpyasnpprintnp.char.join(':','dmy')printnp.char.join([':','-'],['dmy','ymd'])其输出如下-d:m:y['d:m:y''y-m-d']参考链接https://ww......
  • 软件测试|深入理解SQL CROSS JOIN:交叉连接
    简介在SQL查询中,CROSSJOIN是一种用于从两个或多个表中获取所有可能组合的连接方式。它不依赖于任何关联条件,而是返回两个表中的每一行与另一个表中的每一行的所有组合。CROSSJOIN可以用于生成笛卡尔积,它在某些情况下非常有用,但在其他情况下可能会导致结果集过大。在本文中,我们......
  • 【专题】2021婚房置业报告PDF合集分享(附原数据表)
    原文链接:https://tecdat.cn/?p=33848随着10月的到来,我们已经踏入了年末冲刺阶段,是否准备好应对家庭的盘问了?工作稳定、挣多少钱、买房与否,最后总是绕不开催婚话题。阅读原文,获取专题报告合集全文,解锁文末47份婚恋相关行业研究报告,加入我们的同城群,和志同道合的小伙伴们一起寻找爱......
  • 【专题】2021当代青年婚恋状态研究报告PDF合集分享(附原数据表)
    原文链接:https://tecdat.cn/?p=33848随着10月的到来,我们已经踏入了年末冲刺阶段,是否准备好应对家庭的盘问了?工作稳定、挣多少钱、买房与否,最后总是绕不开催婚话题。阅读原文,获取专题报告合集全文,解锁文末47份婚恋相关行业研究报告,加入我们的同城群,和志同道合的小伙伴们一起寻找爱......
  • 【专题】2021年中国当代不婚主义白皮书报告PDF合集分享(附原数据表)
    原文链接:https://tecdat.cn/?p=33848随着10月的到来,我们已经踏入了年末冲刺阶段,是否准备好应对家庭的盘问了?工作稳定、挣多少钱、买房与否,最后总是绕不开催婚话题。阅读原文,获取专题报告合集全文,解锁文末47份婚恋相关行业研究报告,加入我们的同城群,和志同道合的小伙伴们一起寻找爱......
  • 【GJOI 2023.10.17 T4】 莫队
    莫队今天,接触信息学不久的小A刚刚学习了莫队。莫队可以解决一类难以合并,但方便插入的信息维护。比如,给定一个序列,支持单点修改,每次询问一个区间出现了多少种数字。再比如,给定一个序列,支持单点修改,每次询问区间众数。诸如此类。小A觉得这样的情况太平凡了。于是,他定义了一个......