CodeForces 1098D. Eels

Posted tinywong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CodeForces 1098D. Eels相关的知识,希望对你有一定的参考价值。

题目简述:对一个非空正整数(可重)集合$S$,从中选出两个元素$a, b (a leq b)$,将他们从$S$中删除并将$a+b$加入$S$,重复这个操作直到$S$中只剩下一个元素为止,称为一次【竞技】。若一次操作中$a leq b leq 2a$,则称这次操作是【危险的】。一次竞技的【危险值】为其中【危险的】操作的次数。定义这个集合$S$的【危险值】(记作$ ext{danger}(S)$)为:所有可能的竞技的【危险值】的最大值。设一个集合$S$初始为空集,维护以下操作:

1. 插入一个数$1 leq x leq 10^9$。

2. 删除一个(已有的)数$1 leq x leq 10^9$。

每次操作后,计算$ ext{danger}(S)$。

解:code

对$x in S$,定义$S$中比$x$小的数之和为

$$ f(x) = sum_{a in S, a < x} x. $$

令$S$中满足$2f(x) < x$的$x$的个数为

$$t = sum_{x in S} [2f(x)<x]. $$

观察1:$ ext{danger}(S)=|S|-t$。

以上是关于CodeForces 1098D. Eels的主要内容,如果未能解决你的问题,请参考以下文章

CodeForces 1098F. Ж-function

Codeforces round 1098

CodeForces 1098E. Fedya the Potter

[luoguP1098] 字符串的展开(模拟)

BZOJ 1098: [POI2007]办公楼biu 链表

洛谷 P1098 字符串的展开