codeforces1098D Eels
题面
题意
在鱼缸中有一些鱼,这些鱼之间会相互吞噬直到只剩下一条鱼,若一条鱼的质量为a,另一条鱼的质量为b,则吞噬之后会剩下一条质量为a+b的鱼,若a<=ba<=ba<=b且b<=2∗ab<=2*ab<=2∗a,则这次吞噬是危险的。
现在有一个空鱼缸,进行多次操作,每次操作会加入一条鱼或去掉某一条鱼,问这次操作后,鱼缸中的鱼相互吞噬直到只剩下一条鱼,至多有几次是危险的。
做法
首先考虑怎样吞噬才会使危险次数最多,可以发现如果每次挑选最轻的两条鱼互吞,答案最大,进一步可以发现,对所有鱼按质量进行排序后,若一条鱼与其他鱼合并会对答案造成贡献,当且仅当wi<=2∗∑j<iwjw_i<=2*\sum_{j<i}{w_j}wi<=2∗∑j<iwj
现在考虑维护这个东西。
根据鱼的质量将其分为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相关推荐
- Codeforces 1089D Eels (看题解)
Eels 感觉想不出来这种东西.. 题解讲的很清楚啦. 我好lj啊. https://codeforces.com/blog/entry/64331 #include<bits/stdc++.h ...
- I Need Some Sleep / Eels
想想挣钱真难,今天好累啊,改了又改,只为了客户满意~~ 听听这首歌,我也应该去休息了,大家晚安. 忧伤的钢琴柔柔响起,随后听到那沧桑的嗓子,是Eels沙哑的声音, 浅吟低唱,摇摇欲坠,忧郁的摇篮曲,重 ...
- CodeForces 1098D. Eels
题目简述:对一个非空正整数(可重)集合$S$,从中选出两个元素$a, b (a \leq b)$,将他们从$S$中删除并将$a+b$加入$S$,重复这个操作直到$S$中只剩下一个元素为止,称为一次[竞 ...
- String Manipulation
String Manipulation 目录 String Manipulation 目录 Overview strlen Prototype Description Return Value Exa ...
- 如何在Python中声明一个数组?
如何在Python中声明数组? 我在文档中找不到任何对数组的引用. #1楼 这个怎么样... >>> a = range(12) >>> a [0, 1, 2, 3 ...
- 快速记忆python函数-python之格式化字符串速记整理
一.格式化字符串的方式: 1.字符串表达式: 语法格式:"%s' % var 或 "%s %d' % (var1, var2) 说明:%s.%d等为格式类型说明符 例子: > ...
- 测试晶面间距软件_超逼真动图解析常用15大分析测试仪器,必收藏!SEM, 红外,紫外,核磁,质谱,TEM,ICP等...
紫外吸收光谱 UV 分析原理:吸收紫外光能量,引起分子中电子能级的跃迁 谱图的表示方法:相对吸收光能量随吸收光波长的变化 提供的信息:吸收峰的位置.强度和形状,提供分子中不同电子结构的信息 物质分子吸 ...
- Python基础之:Python中的IO
文章目录 简介 linux输入输出 格式化输出 f格式化 format格式化 repr和str %格式化方法 读写文件 文件对象的方法 使用json 简介 IO就是输入和输出,任何一个程序如果和外部希 ...
- c# 计算空格宽度像素_Adv. Mater:2D材料缺陷工程实现全光控存储和神经形态计算...
研究背景 在当前的人工视觉技术中,最先进的成像设备可以有效地检测图像.但是,这些系统会生成大量的冗余数据集,这需要大量计算来提取有意义的信息和大数据存储.此外,这些高要求导致了数据延迟和高功耗,对下一 ...
最新文章
- vs生成解决方案出错
- 小巧但强大,浏览器开发常用工具插件一枚
- 成都python工作-成都python就业
- 牛客小白9 换个角度思考(离线+树状数组)
- d3js mysql_D3.js入门指南
- php curl 采集文件,curl获取远程文件内容
- array_chunk_PHP array_chunk()函数与示例
- java log输出到文件路径_Java - 配置log4j的日志文件路径 (附-获取当前类路径的多种方法)...
- 考研重庆邮电大学计算机跨专业,重庆邮电大学计算机考研难度
- Java再学习——关于ConcurrentHashMap
- [转] 2018年最新桌面CPU性能排行天梯图(含至强处理器)
- CASS删除分幅后图框内部十字丝
- 关于Excel常用函数做数据分析
- 17秋 软件工程 团队作业 最终总结博客
- 软件测试行业用mac好还是win好,为了在Mac上也能用好Windows,我做了这些调整
- srb话题x-s x-b3-traceid
- Eighth Week(补充完整)
- Ansible(十四)-- ansible 中的变量(三) set_fact 模块 注册变量实现跨play调用变量
- 面向对象:期待在正确的时间,遇见更好的你
- Linux常用命令汇总 - 近乎全量命令!