当前位置: 首页 > news >正文

名者观看网站简单网页设计模板网站

名者观看网站,简单网页设计模板网站,wordpress连接discuz,wordpress模版怎么设计Eels 题目链接:luogu CF1098D 题目大意 有一个可重集,每次操作会放进去一个数或者取出一个数。 然后每次操作完之后,问你对这个集合进行操作,每次选出两个数 a,b 加起来合并回去,直到集合中只剩一个数,要…

Eels

题目链接:luogu CF1098D

题目大意

有一个可重集,每次操作会放进去一个数或者取出一个数。
然后每次操作完之后,问你对这个集合进行操作,每次选出两个数 a,b 加起来合并回去,直到集合中只剩一个数,要你最小化 2a<b 或 2b<a 的次数。
每次输出这个最小次数。

思路

有一个简单的贪心结论是每次选最小的两个合并。
感性理解就是你如果要贡献了,那迟早都要贡献,你这里加了说不定他就够大了就不一定在下一次贡献了。

接下来发现你这样这题好像还不能过。
于是考虑再推一点结论,发现它贡献的条件我们还没有用上。
于是考虑一下这个二倍,会发现一个什么问题,就是如果你某一次要贡献。
比如贡献的形式是 x,yx,yx,y,其中 2x<y2x<y2x<y,那你其实会发现这个 yyy 是不可能是被合并出来的,它一定是原生的。

那如果它能被合出来 y1+y2=y(y1⩽y2)y_1+y_2=y(y_1\leqslant y_2)y1+y2=y(y1y2),那我们每次合最小的两个,那 y1,y2y_1,y_2y1,y2 已经被合了 xxx 还在,那一定有 y1⩽y2⩽xy_1\leqslant y_2\leqslant xy1y2x,那 y1+y2⩽2xy_1+y_2\leqslant 2xy1+y22xy⩽2xy\leqslant 2xy2xy>2xy>2xy>2x 矛盾。
也不难看出,当 kx<ykx<ykx<y 为条件的时候,两个推出来的条件分别是 y⩽2xy\leqslant 2xy2xy>kxy>kxy>kx,也就是当 k⩾2k\geqslant 2k2 的时候其实这个结论都成立,这也是这个条件成立的充要条件。

那这个说明什么,你如果要出现贡献,大的一定是原生的,而每次你都会合最小的两个,那要让大的是原生的也就是它是现在第二小的,而且比它大的里面不应该有非原生的。
因为有的话,就说明它肯定没有最小的二倍。
那最小的肯定就是原生的里面比他小的和。
那条件就是:(先把数组排序,在让 sumi=∑x=1iaxsum_i=\sum\limits_{x=1}^ia_xsumi=x=1iax
∑i=1n[2sumi−1<ai]\sum\limits_{i=1}^n[2sum_{i-1}<a_i]i=1n[2sumi1<ai]


那我们要做的就是在插入数和删去数的过程中维护这个东西的值。
会发现问题在于每个地方都要判断一次,但是一个显然的事情是每一次是上次的两倍以上,那每次这个值都会翻倍,那就只会有至多 log⁡\loglog 次贡献。
那你会发现如果你按最高位的存在来分(我们对于每个维护一个 set),那你会发现每一组至多只有一个贡献,那我们需要判断的次数也缩小到了 log⁡\loglog 级别,就可以了。

代码

#include<set>
#include<cstdio>
#define ll long longusing namespace std;int n, ans;
multiset <int> s[36];
ll sum[36];int getk(int x) {int re = 0;while (x > 1) re++, x >>= 1;return re;
}int main() {scanf("%d", &n);while (n--) {char c = getchar(); while (c != '+' && c != '-') c = getchar();int x; scanf("%d", &x);int k = getk(x);if (c == '-') {s[k].erase(s[k].find(x));sum[k] -= x;}if (c == '+') {s[k].insert(x);sum[k] += x;}ll Sum = 0; ans = 0;for (int i = 0; i <= 30; i++)if (s[i].size()) {ans += s[i].size();if ((*s[i].begin()) > 2 * Sum) ans--;Sum += sum[i];}printf("%d\n", ans);} return 0;
} 
http://www.yayakq.cn/news/764959/

相关文章:

  • 永康物流网站计算机网络技术出来干什么
  • 如何做网站视频纯静态网站 维护
  • ASP个人网站的建设制作小程序的流程
  • 互联网电子商务网站开发技术海商网做网站价格
  • 定制家具网站源代码中和seo公司
  • 关于网站开发的引言企业培训师资格证报考2022
  • 做教学的视频网站百度大数据分析
  • 大兴企业官网网站建设咨询做网站公司电话
  • 正在建设的网站可以随时进入吗seo五大经验分享
  • 网站建设定义php 手机网站源码
  • 西山区建设局网站网址域名大全2345网址
  • 嘉兴服饰网站建设wordpress重置
  • 包装设计网站官网网页制作公司深圳
  • 网站上360 旋转的图是怎么做的广州做网站一般要多少钱?
  • 网站建设去超速云建站小型公司网络建设方案
  • 深圳网站建设 百度一下网站模板建设二级目录
  • 做化妆品销售网站如何江苏省建设工程地方标准网站
  • 建网站报价 优帮云手表排行榜
  • 济南槐荫网站开发公司学校网站建设经验介绍
  • 比价网站 源码一个人做网站 没有人写文章怎么办
  • 做网站的人会不会拿走我的网站石家庄网站关键词推广
  • 保险网站推荐免费网站建站平台
  • 江苏靖江苏源建设有限公司网站会议网站建设方案
  • 国外开源建站系统dede网站怎么做微信小程序
  • 导航网站的网站地图怎么做对网站做数据统计的目的是什么意思
  • 简述网站开发的几个阶段wordpress 如何修改关于我们
  • 韩国优秀电商网站app软件做得比较好的公司
  • 网站建设用素材网站建设预估费用
  • 网站开发类app国外哪些网站可以注册域名
  • 网站开发用php还pyt h onwordpress读者墙 插件