首页 > 其他 > 详细

CF1098D

时间:2020-05-17 10:08:56      阅读:46      评论:0      收藏:0      [点我收藏+]

题意

洛谷

做法

排序\(a_1\le a_2\le ...\le a_{n-1}\le a_n\)
定义1\(a_i>2\sum\limits_{j<i}a_j\),则称鱼\(i\)是肥鱼

\(t\)为肥鱼个数

结论1\(danger\le n-t\)

证明:
考虑每条肥鱼单独与一个集合合并的贡献即可,即便产生了贡献,也是破坏贡献持平的

结论2:在每一时刻,两个重量最小的鱼争斗

证明:
如果a与b不危险,则b没有吃过其他鱼:假设吃过\(b=c+d(c\le d)\Longrightarrow d\ge b/2>a\),根据归纳,\(a\)\(c\)之前争斗过

结论3\(danger=n-t\)

证明:
考虑对个数归纳,\(a_1+a_2>a_k,a_1+a_2\le a_{k+1}\),则将\((a_1+a_2)\)插到\(k,k+1\)
由于\(a_i<(a_1+a_2)(i\in[3,k])\),则前面\(a_i<2(\sum\limits_{j=1}^{i-1}a_j)~or~a_i\ge 2(\sum\limits_{j=1}^{i-1}a_j)\)依然满足\(a_i<2(\sum\limits_{j=3}^{i-1}a_j)~or~a_i\ge 2(\sum\limits_{j=3}^{i-1}a_j)\),而\(i>k\),显然不会变化。即所有是否是肥鱼的属性都不会变化。而\(a_3\)不是肥鱼也转去\((a+b)\)不是肥鱼了。
根据归纳假设,依然满足:\(danger=n-t\)

结论4:将值域划分为\([2^0,2^1),[2^1,2^2)...,[2^{30},2^{31})...\),每个区间最多只有一条肥鱼,且若有,则必定是区间最小的

根据结论4,随便搞即可

题外话

结论证明的细节较多,可能有写挂的地方,若有请提醒一下

CF1098D

原文:https://www.cnblogs.com/Grice/p/12902913.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!