参赛情况
Rank 1257, Solved 3, Non-AC Submits 0.
智力不济。
题目回顾
B. All Pairs Segments
用时:~30min
分类讨论,落在 ( x i , x i + 1 ) (x_i,x_{i+1}) (xi,xi+1) 和 x i x_i xi 上。一起算会出问题(我就是栽在这,调了半天)。之后就是乘法原理匹配一下。
C. Cards Partition
用时:~30min
很好的贪心,让我想出来了。首先我们枚举每个 deck 的大小 s i z e size size(因为最大就 n n n)。接下就是判断是否可行。然后发现 deck 的数量必然不小于 max a i \max a_i maxai,而且 max a i \max a_i maxai 必然不用再去增加数量,如果增,那么更有可能突破 k k k 的限制。然后其它就是一个一个填就行了,我的方案是按 a i a_i ai 从大到小依次给每个 deck 加卡片。所以我们要找比 s i z e × max a i size\times\max a_i size×maxai 大的,可以被 s i z e size size 整除的,落在合理卡牌数量中的。
D. Speedbreaker
没做出来。
因为我一直想区间dp然后数据结构优化,发现几乎不可做。
其实正解思路很简单。我认为思考的方向是一个感觉:所有合法的起始点是相临近的,因为过程中会有一些区间位置的限制。然后考虑在一定时间内必然要涵盖的最小区间,包含所有 a i < t a_i<t ai<t。判断它是否合法,在计算走到这个区间的起始点范围。最后所有要求取交。
这题的启示是,我们可以将限制拆开成若干限制的交集。
E. Tree Pruning
明显比上一题简单,但是我过于固执没看这题。
让所有叶子节点深度相同,我们可以减去深度过大(长过头)的叶子,再减去子树最大深度不够(不够格)的叶子。维护两者的数量,然后在根上枚举希望保留的深度。
F. Max Plus Min Plus Size
题都没看过呐。(所以大概是不补了)