Examples

2022-12-5 #4 泥泞步履踏碎泪泊 拥向光如抱薪赴火 妄想着永不分离的梦

——COP《光与影的对白》

调整了一下歌单,尝试听一些比较积极的歌调整心态。

今天既然没有心情做题,随便写一些之前做过的题吧。

11-30 日 vp:2022 ICPC Jinan

15 J Skills

可以发现,一个技能一旦开始学,就不会停止学超过 O(t) 天。

于是记录一下每个技能有没有开始学,以及上回合没有学的两个技能分别停了多少天即可。

一个实现技巧:记录上一次学习的技能编号 c,将三个技能重编号为 c,c+1,c+2,这样转移会很好写。

16 L Tree Distance

找支配对的技巧非常经典,序列上性质比较好,可以直接用单调栈找。

树上考虑使用点分治,对于每个越过分治中心 u 的支配对,我们在距离 u 较远的一个位置考虑其。可以发现,我们只需让 x 与距离 u 不超过 dis(u,x) 的点中前驱、后继配对即可满足要求。若与某个比前驱编号小的点 y 配对,将 y 与前驱配对不劣。

最后对这些支配对做一遍二维数点,复杂度 O(nlog2n)

17 I Shortest Path

一个直觉是,当边数到达某个程度,我们存在一种固定的策略,重复利用某一条边。

一个比较松的上界是 4n,对于长度大于其的路径,我们都可以找到路径上最小边 (u,v),分别用 2n(1,u),(v,n) 固定奇偶性的最短路,然后重复走 (u,v)

那么暴力跑出边数较少的,后面枚举这条最小边,贡献就是一个一次函数,做个凸包就好了。

18 F Grid Points

套路地二分斜率,只需数点。

用斜率对应的直线把多边形切开,那么就是多边形整点计数。

一个经典的处理方法是每个点作一条垂直于 x 轴的垂线,这会变成 O(n) 个直角梯形的加减,类欧几里得处理即可。

复杂度 O(nlog2V)

稍微恢复了一下,差不多做得动题了。

vp:JSCPC2022

19 E Playing Cards

联考考过这题,如果只看式子联想到组合意义是很难的。

组合意义:定义一次操作为将某个值减去 k,对 b 序列进行尽量少的操作,使得存在一个排列 p 满足 biapi

这是经典的贪心配对模型,使用类似 ABC254H 的技巧,每次考虑最大的数的匹配对象。

由于 b 值会变动,不妨从大到小枚举每个 ai,考虑其匹配哪个。注意到若存在 bj>aik,选择其一定不劣于选择一个 aik 的数(注意,这里必须带上减 k),所以若存在,我们用 set lower_bound 出最靠近 ai 的数,否则直接选择剩余 b 中最大的。

复杂度 O(nlogn)

20 G GCD on Bipartite Graph

不会构造。

n+m30 时,策略就是用 {1}P(素数)填满较小的集合。

不会证。

小的时候爆搜就好了。

没啥意义啊!!!!

posted @   xiaoziyao  阅读(200)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下
点击右上角即可分享
微信分享提示