JOI Final 2020 题解
JOI 2020 Just Long Neckties
首先一定是贪心将两个从小到大排。然后考虑维护 的前缀 max 与 的后缀 max 即可。
https://qoj.ac/submission/113106
JOI 2020 JJOOII 2
考虑维护出每个点往前跳 个 J/O/I 跳到哪里。于是枚举右端点,然后往前跳找到最大的左端点即可。
https://qoj.ac/submission/113117
JOI 2020 Collecting Stamps 3
考虑破环后设计 DP: 表示目前走遍了 并停在了 并拿了 个邮票的最小用时, 表示停在 的最小用时。于是 就可以转移到 满足 。同时还有 和 的互相松弛(用 松弛)。
https://qoj.ac/submission/113146
JOI 2020 Olympic Bus
考虑对于边 ,翻转后对于 和 的影响。以 为例。如果 是最短路必经边,那么就求一下删掉之后的最短路;如果不是,那么就有两种情况,取原最短路,和取反边后 ,显然两者都不会用到 。删掉之后的最短路考虑最短路图后支配树。由于这题有零边所以不能直接 DAG 支配树!暴力复杂度 即可。
https://qoj.ac/submission/113239
JOI 2020 Fire
首先考虑 怎么做。我们发现每个 覆盖的区间会不断右移。 表示 覆盖的区间左端点开始动的时间,即最大的 满足 ;同理 表示区间右端点停止的时间,即最大的 满足 。考虑 表示 时间的和,那么 对 的贡献是一个类似梯形的一个关于 的函数,我们可以轻易通过 找到 对 的二阶差分的贡献的位置。然后考虑分块,同理我们也可以对于每个块,处理出它的 ,遍历每个 看 对这个块的 的二阶差分的贡献的位置。具体而言,对于块 ,块左边的贡献为 处 , 处 , 处 , 处 。块内部点的贡献后面两个是相同的,前面的是 处 以及 处 。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理