CF2019(Codeforces Round 975 (Div. 2))

CF2019

A.Max Plus Size

难度:红
弱智题。
奇数偶数分别判一遍。

B.All Pairs Segments

难度:橙
有点弱智题。
每个点计算贡献然后用一个map存起来。

C.Cards Partition

难度:黄
\(n\)\(1\) 枚举,存在方案就输出。

D.Speedbreaker

难度:黄
主要是一个区间交集存在性问题。考虑把 \([i-a[i]+1,i+a[i]-1]\) 当作一个区间。

E.Tree Pruning

难度:黄-绿
机房巨佬说这题用虚树直接秒了。可蒟蒻连虚树是什么都不知道qwq
枚举每一个修剪到的深度,然后取最小值。如果是直接暴力的话时间复杂度 \(O(n^2)\),显然会炸。
\(mxdep_i\) 为每个点能到达的最大深度,\(dep_i\) 为每个点深度。于是每个点会在 \(dep_i\sim mxdep_i\) 处产生贡献。考虑前缀和优化。

F.Max Plus Min Plus Size

难度:蓝-紫
第一题的...加强版?
首先,最大值一定为 \(a[n]\)。不然可以把 \(a[n]\) 旁边的删掉选 \(a[n]\)
然后考虑从大到小枚举最小值。在每一次枚举完后打个标记,若两边的数标记过就用并查集合并。
注意最大值可能在合并的连通块中,需要用奇偶性判断。

posted @   nagato__yuki  阅读(15)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示