专栏文章

题解:AT_abc303_f [ABC303F] Damage over Time

AT_abc303_f题解参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@miqi15aw
此快照首次捕获于
2025/12/04 05:08
3 个月前
此快照最后确认于
2025/12/04 05:08
3 个月前
查看原文
这道题感觉是贪心加二分,二分答案 ansans,先肯定是用 ti×dit_{i}\times d_{i} 最高的打他。
设当前时间为 xx,有的 tit_i 贡献不完,要与 ansx+1ans-x+1 取最小值。
否则考虑枚举时间,枚举时间肯定不能挨着枚举,由于最大值的可能更新只有 O(n)O(n) 个,于是离散了枚举。
每次的最大值表示为:
  • tiansx+1t_i \leq ans-x+1max(ti×di)\max(t_i\times d_i)
  • ti>ansx+1t_i > ans-x+1max((ansx+1)×di)\max((ans-x+1)\times d_i)
分别维护一下 tit_i 大于和小于 ansx+1ans-x+1 的最大值就行了,平衡树、线段树或者单纯的排个序都可以做。
然后把最大的总贡献算出来,最后判断与 HH 的大小就行了。

评论

0 条评论,欢迎与作者交流。

正在加载评论...