题面

题意

在鱼缸中有一些鱼,这些鱼之间会相互吞噬直到只剩下一条鱼,若一条鱼的质量为a,另一条鱼的质量为b,则吞噬之后会剩下一条质量为a+b的鱼,若a&lt;=ba&lt;=ba<=b且b&lt;=2∗ab&lt;=2*ab<=2∗a,则这次吞噬是危险的。
现在有一个空鱼缸,进行多次操作,每次操作会加入一条鱼或去掉某一条鱼,问这次操作后,鱼缸中的鱼相互吞噬直到只剩下一条鱼,至多有几次是危险的。

做法

首先考虑怎样吞噬才会使危险次数最多,可以发现如果每次挑选最轻的两条鱼互吞,答案最大,进一步可以发现,对所有鱼按质量进行排序后,若一条鱼与其他鱼合并会对答案造成贡献,当且仅当wi&lt;=2∗∑j&lt;iwjw_i&lt;=2*\sum_{j&lt;i}{w_j}wi​<=2∗∑j<i​wj​
现在考虑维护这个东西。
根据鱼的质量将其分为30个区间:[1,2),[2,4),[4,8)......[229,230)[1,2),[2,4),[4,8)......[2^{29},2^{30})[1,2),[2,4),[4,8)......[229,230)
然后可以发现,如果一个区间中有多个元素,则只有最小的元素可能不是危险的,因此我们只要维护每个区间的和,每次询问O(30)O(30)O(30)暴力计算即可

代码

#include<bits/stdc++.h>
#define ll long long
using namespace std;ll Q,ans,sum[40];
char str[2];
multiset<ll>num[40];int main()
{ll i,j,t,qz;cin>>Q;while(Q--){scanf("%s%lld",str,&t);for(i=1;(1 << i)<=t;i++);i--;if(str[0]=='+'){sum[i]+=t;num[i].insert(t);}else{sum[i]-=t;num[i].erase(num[i].find(t));}qz=ans=0;for(i=0;i<30;i++){if(!num[i].size()) continue;ans+=(num[i].size()-((*num[i].begin())>2*qz));qz+=sum[i];}printf("%lld\n",ans);}
}

codeforces1098D Eels相关推荐

  1. Codeforces 1089D Eels (看题解)

    Eels 感觉想不出来这种东西.. 题解讲的很清楚啦. 我好lj啊. https://codeforces.com/blog/entry/64331 #include<bits/stdc++.h ...

  2. I Need Some Sleep / Eels

    想想挣钱真难,今天好累啊,改了又改,只为了客户满意~~ 听听这首歌,我也应该去休息了,大家晚安. 忧伤的钢琴柔柔响起,随后听到那沧桑的嗓子,是Eels沙哑的声音, 浅吟低唱,摇摇欲坠,忧郁的摇篮曲,重 ...

  3. CodeForces 1098D. Eels

    题目简述:对一个非空正整数(可重)集合$S$,从中选出两个元素$a, b (a \leq b)$,将他们从$S$中删除并将$a+b$加入$S$,重复这个操作直到$S$中只剩下一个元素为止,称为一次[竞 ...

  4. String Manipulation

    String Manipulation 目录 String Manipulation 目录 Overview strlen Prototype Description Return Value Exa ...

  5. 如何在Python中声明一个数组?

    如何在Python中声明数组? 我在文档中找不到任何对数组的引用. #1楼 这个怎么样... >>> a = range(12) >>> a [0, 1, 2, 3 ...

  6. 快速记忆python函数-python之格式化字符串速记整理

    一.格式化字符串的方式: 1.字符串表达式: 语法格式:"%s' % var 或 "%s %d' % (var1, var2) 说明:%s.%d等为格式类型说明符 例子: > ...

  7. 测试晶面间距软件_超逼真动图解析常用15大分析测试仪器,必收藏!SEM, 红外,紫外,核磁,质谱,TEM,ICP等...

    紫外吸收光谱 UV 分析原理:吸收紫外光能量,引起分子中电子能级的跃迁 谱图的表示方法:相对吸收光能量随吸收光波长的变化 提供的信息:吸收峰的位置.强度和形状,提供分子中不同电子结构的信息 物质分子吸 ...

  8. Python基础之:Python中的IO

    文章目录 简介 linux输入输出 格式化输出 f格式化 format格式化 repr和str %格式化方法 读写文件 文件对象的方法 使用json 简介 IO就是输入和输出,任何一个程序如果和外部希 ...

  9. c# 计算空格宽度像素_Adv. Mater:2D材料缺陷工程实现全光控存储和神经形态计算...

    研究背景 在当前的人工视觉技术中,最先进的成像设备可以有效地检测图像.但是,这些系统会生成大量的冗余数据集,这需要大量计算来提取有意义的信息和大数据存储.此外,这些高要求导致了数据延迟和高功耗,对下一 ...

最新文章

  1. vs生成解决方案出错
  2. 小巧但强大,浏览器开发常用工具插件一枚
  3. 成都python工作-成都python就业
  4. 牛客小白9 换个角度思考(离线+树状数组)
  5. d3js mysql_D3.js入门指南
  6. php curl 采集文件,curl获取远程文件内容
  7. array_chunk_PHP array_chunk()函数与示例
  8. java log输出到文件路径_Java - 配置log4j的日志文件路径 (附-获取当前类路径的多种方法)...
  9. 考研重庆邮电大学计算机跨专业,重庆邮电大学计算机考研难度
  10. Java再学习——关于ConcurrentHashMap
  11. [转] 2018年最新桌面CPU性能排行天梯图(含至强处理器)
  12. CASS删除分幅后图框内部十字丝
  13. 关于Excel常用函数做数据分析
  14. 17秋 软件工程 团队作业 最终总结博客
  15. 软件测试行业用mac好还是win好,为了在Mac上也能用好Windows,我做了这些调整
  16. srb话题x-s x-b3-traceid
  17. Eighth Week(补充完整)
  18. Ansible(十四)-- ansible 中的变量(三) set_fact 模块 注册变量实现跨play调用变量
  19. 面向对象:期待在正确的时间,遇见更好的你
  20. Linux常用命令汇总 - 近乎全量命令!

热门文章

  1. Python:缓存库mo-cache支持内存、文件、Redis
  2. map和multimap的详解(C++)
  3. Python3爬取淘宝网商品数据!
  4. AMD CPU VMware 16 Pro安装macOS 10.15
  5. Qt 圆形进度条实现
  6. 点云公开数据集:S3DIS
  7. 【操作系统】“哲学家进餐”问题
  8. TCP协议-TCP的拥塞控制
  9. Js实现Base64编码、解码
  10. [深度学习] ncnn安装和调用基础教程