zyb 的 Codeforces Round 975 (Div. 2)

参赛情况

link

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。判断它是否合法,在计算走到这个区间的起始点范围。最后所有要求取交。

这题的启示是,我们可以将限制拆开成若干限制的交集。

rec

E. Tree Pruning

明显比上一题简单,但是我过于固执没看这题。

让所有叶子节点深度相同,我们可以减去深度过大(长过头)的叶子,再减去子树最大深度不够(不够格)的叶子。维护两者的数量,然后在根上枚举希望保留的深度。

rec

F. Max Plus Min Plus Size

题都没看过呐。(所以大概是不补了)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值