首页 > 其他分享 >CF1098D 题解

CF1098D 题解

时间:2023-01-31 21:12:16浏览次数:68  
标签:le 题解 合并 每次 合法 CF1098D 危险

题意

传送门

对于一个元素个数大于 \(1\) 的可重集,每次取出两个数 \(x,y\) 合并。若 \(x\le y\le 2x\),则称其为危险合并。重复上述操作至无法合并。

给你一个初始为空的可重集与 \(n\) 次操作,每次加入或删除一个数,求每次操作后最大的危险合并次数。

\(1\le n \le5\times10^5,1\le x\le10^9\)。

题解

这题太妙了。深深感觉自己的弱小……

首先我们证明一个结论:每次取最小的两个数合并,可以取得最大的危险合并次数。方便起见,称 \(x,y\) 是危险合并为 \(x,y\) 合法。

设最小两值为 \(a,b\)。若不合并 \(a,b\),那么 \(a,b\) 中先与其他数合并的那个,不妨设为 \(b\)。考虑 \(b,c\) 合并,其中 \(c\geq b\):

  • 若 \(b,c\) 合法。若 \(a+b\le c\),则显然 \(a+b,c\) 合法。若 \(a+b>c\),由 \(a\le c,b\le c\),有 \(a+b\le2c\),则 \(a+b,c\) 也合法。那么贪心先合并 \(a,b\)。
  • 若 \(b,c\) 不合法。因为 \(2b<c\),所以 \(a+b<c\)。显然先合并 \(a,b\) 不会更劣。

于是不带修直接用小根堆即可。那么带修呢?

再证明一个结论:若最小二值 \(a,b\) 合法,则接下来的所有合并 \(x,y\),若 \(x,y\in[b,a+b]\),则 \(x,y\) 合法。

证明很简单,\(y\le2x\iff y-x\le x\),因为 \(y-x\le a\),故成立。有了这个结论,我们可以做很多事。

我们可以证明,将初始元素升序排序后,合法合并一定是一段段的。如下(图片来自 \(\texttt{lzqy_}\))

且所有不合法合并一定是形如 \(2\sum\limits_{i=1}^{x-1}a_i<a_{x}\)。于是我们就将原来动态的合并转化为了静态问题。

按值域分块,\([2^0,2^1),[2^1,2^2)\cdots[2^{29},2^{30})\)。则每块内只有第一个元素可能非法。逐块判断即可。复杂度 \(O(n\log x)\)。

标签:le,题解,合并,每次,合法,CF1098D,危险
From: https://www.cnblogs.com/FishJokes/p/17080767.html

相关文章

  • 【题解】[LNOI2022] 盒
    题目分析:我们可以对每一条边单独计算贡献,这样会发现贡献很好算:\[ans=\sum_{i=0}^{n-1}w_i\sum_{j=0}^S|j-s_i|\binom{i+j-1}{i-1}\binom{S-j+n-i-1}{n......
  • 【题解】P5169 xtq的异或和
    再强没有xtq!!!1思路多项式的正确用法。首先根据P4151[WC2011]最大XOR和路径的神秘结论,这里只需要任意求出原图的一棵生成树,以及所有只包含一条非树边的简单环就可以维......
  • 调用后台接口实现Excel导出功能以及导出乱码问题解决
    实现效果在导出表格数据的时候,通常分为两种情况页面列表数据导出接口返回数据导出这里主要介绍接口返回数据导出,关于页面的列表数据导出,请看另一篇:vue3+element表格......
  • CF1400E Clear the Multiset 题解 贪心+分治
    题目链接:http://codeforces.com/problemset/problem/1400/E题目大意:给定一个长度为\(n\)数列\(\{a_n\}\),你可以进行如下操作:操作1:任意选择一个区间\([l,r]\),使区间内......
  • P6327 区间加区间sin和 题解
    P6327区间加区间sin和题解第一道Ynoi(捂脸题目描述给出一个长度为\(n\)的整数序列\(a_1,a_2,\ldots,a_n\),进行\(m\)次操作,操作分为两类。操作\(1\):给出\(l,r,v......
  • [SDOI2008] 仪仗队【题解】
    题目描述作为体育委员,C君负责这次运动会仪仗队的训练。仪仗队是由学生组成的\(N\timesN\)的方阵,为了保证队伍在行进中整齐划一,C君会跟在仪仗队的左后方,根据其视线所......
  • Luogu P4145 上帝造题的七分钟 2 / 花神游历各国 题解
    Luogu链接:上帝造题的七分钟2/花神游历各国${\scr\color{Orchid}{\text{Solution}}}$题目大意支持两种操作:区间开方(向下取整)区间求和分析发现线段树容易实......
  • AT dp 26 题 题解
    题单:https://www.luogu.com.cn/training/100578#problems嘛虽然是26题,但是简单的题就不想写了...就写绿题及以上的吧目录EIJMOPQRSTUVE对重量dp,设\(dp[i][v]\)表......
  • uniapp webview中动态设置公众号文章标题不显示问题解决
    设置在onLoad中可能会引起偶发性无效。解决方案:1、改写在onReady生命周期中。2、用setTimeout设置延迟。 onReady(){this.timers=setTimeout(()=>{......
  • USACO2023 Bronze 题解
    Problem1.Leaders\(\mathcal{Farmer\John}\)共有\(n\)头奶牛,品种用字符\(\mathsf{G}\)或\(\mathsf{H}\)表示。每一头牛有一个管辖区间\([i,E_i]\)称一头......