某某君,记叙文,带下标大写字母,2e5
0 秒猜出出题人国籍。
偶遇喜茶塞我神秘题单,拼尽全力我靠我不会写。
其实是 JOI 特训。
P5100 [JOI 2017 Final] 足球 / Soccer
人话:我草我概括不动太史了这个题面。
发现某种边权是高贵的一次函数,直接做做不动。
那间接做就做得动了吗,当然不。
考虑球的状态:
- 被人带着走;
- 上下滚动;
- 左右滚动。
然后建三层图,第一层到第二、三层对应踢出去,边权为常数
第一层内部连边权为
幻视 cxk()
P11791 [JOI 2017 Final] 准高速电车 / Semiexpress
题目保证了
对于每一块内,先走
考虑一开始不用
P11792 [JOI 2017 Final] JOIOI 王国 / Kingdom of JOIOI
题目很他吗不说人话啊,题意是:你要把一个网格沿一个非严格楼梯状边界划分成两部分,使两部分各自极差的较大值最小。
首先,答案有一个上界是整个网格的极差,所以考虑把网格的最大值和最小值分在两个不同区域,这样答案不劣于上界。
然后题目能用的只有“楼梯”这个形状了,但是好像不能直接做。考虑二分答案,把“楼梯”用于判合法。
对每个点分类讨论,看看它到底是在最大值那边、最小值那边、两者均可、还是两者均不可。
下面只讨论相对位置是左上右下的情况,其余情况可以旋转做四遍。
对于每一行,维护分隔点的取值范围,大概就是根据上面的分类讨论确定
P11795 [JOI 2016 Final] 铁路票价 / Train Fare
题面人话:边权都为
发现把一个边权改成
建出最短路图,相当于问删边后有几个点和
这个时候可能有人要问,那存不存在情况适当换边使得最短路不变?这是不可能的,根据最短路图的性质,不走在最短路图上的边必不可能得到最短路,此时长度也更新了。
每次删边判断当前点入度是否为
时间复杂度线性。
P7669 [JOI 2018 Final] 月票购买 / Commuter Pass
人话:无向图,问将
先跑四遍最短路,因为是无向图所以不用建反图了(笑)。
考虑枚举
考虑把所有可能在
在 DAG 上 dp,对于上述平方算法,考虑每个
然后就做完了。
P7407 [JOI 2021 Final] 机器人 / Robot
人话:你需要改变一些边的颜色,使得存在这样一条路径
首先这题有个很好的性质,只要决定改边就不用担心改重复,因为颜色有
讨论需要改边的情况,对于边
- 改它自己,代价为
w_{u,v} ; - 改其它跟它颜色相同的边,代价为
s_{u,c}-w_{u,v} 。
但是可能有错,比如说一个长度为
所以考虑对
然后呢?不会呐。
优化建图的意义是,当题目存在多种情况且我们不能一一列举时,优化建的图上跑最短路会帮助我们自动枚举这些情况。
来考虑一下优化建图,一个经典的优化建图 trick 是:一堆点向另一堆点连边,可以建一个虚点,把两堆点分别向虚点连边,这样的图是等价的。
然后我们枚举中间点
P9525 [JOIST 2022] 团队竞技 / Team Contest
牛魔,诈骗题。
三维拆开扔优先队列,然后贪心取队头,如果三个不来自同一个人直接输出答案,如果有两个来自同一个人,则这个人不可能存在于答案中,直接打标记,后续队列弹到是直接跳过。
如果队列空了都找不到就是无解了。