2023.10.13NOIPSIM3总结

T1 卡牌

赛时打了一个 \(\Omicron(nm)\) 的暴力,拿到30分。

我们发现第 \(i\) 张牌对BOSS造成的伤害为 $att_i * \lceil \frac{hp_i}{Att} \rceil $,那么考虑以卡牌血量值域为下标开一个桶,储存相同血量的卡牌的 \(\sum att\)

对于每一级BOSS的攻击力,我们都可以在桶上根据 \(\lceil \frac{hp_i}{Att}\rceil\) 进行数论分块,将血量区间为 \(1\sim Att\)\(Att+1 \sim 2Att......\) 的卡牌各分为一块。双指针扫描时,使用树状数组维护卡牌血量为某个区间时的攻击力之和。

时间复杂度为 \(\Omicron(Vlog^2V)\)

posted @ 2023-10-18 14:24  TimeIsFlying  阅读(31)  评论(0)    收藏  举报