首页 > 其他分享 >CF 3000+

CF 3000+

时间:2024-11-28 20:57:38浏览次数:6  
标签:le min max CF 3000 MEX

CF1981F / *3000

首先有朴素的 dp:\(f_{u, i}\) 表示以 \(u\) 为根的子树已经 finish 了,经过 \(u\) 往上走的路径 MEX 为 \(i\)。\(i\) 的取值是 \([1, n + 1] \bigcap \mathbb{Z}\),因为一共只有 \(n\) 个点。

转移的时候分情况,看看子树往上走的路径是在 \(u\) 断开还是继续向上延伸。如果有两个儿子还要考虑是否需要将两个向上走的链在 \(u\) 这里 merge 起来。

这个朴素 dp 是 \(O(n ^ 2)\) 的。但是根据直觉 MEX 不会很大。因此转移时第二维只转移到 \(5000\)。由于 CF 的神机,很轻松的就跑过了。

Proof:假设权值 \(i\) 出现了 \(s_i\) 次。对于一个序列,将每个 \(i\) 与其左右划分为一段,剩下的部分同样成段。这样一共能分出 \(2s_i + 1\) 段。

其中含有 \(i\) 的段 MEX \(\le i\)(因为 \(i\) 一定不在序列中),含有 \(i\) 的段 MEX \(\le 4\)(因为段长为 \(3\))。

设 MEX 上界为 \(t\),则有 \(\min\{(s_i + 1)i + 4s_i\} \ge t\)。又 \(\min\{(s_i + 1)i + 4s_i\} < \min\{(s_i + 1)i + 4(s_i + 1)\}\),可以放缩一下,解得 \(s_i \le \left \lfloor \dfrac{t}{i +4} \right \rfloor - 1\)。

由于 \(\sum s_i = n\),根据调和级数可以得到 \(n = O(t \ln t)\),也就是说 \(t\) 实际上是 \(O(\dfrac{n}{\ln n})\) 级别的。题解说 \(t = 3863\)。

CF1476F / *3000

怎么会有这么蠢的 CF *3000?

想一下,设 \(f_i\) 表示填满前 \(i\) 个需要的最少灯笼不好做。设 \(f_i\) 表示前 \(i\) 个灯笼能扩展的最长前缀。分情况转移:

  • \(f_{i-1}<i\):\(f_i \leftarrow f_{i-1}\)

  • \(f_{i-1}>i\):\(f_i \leftarrow \max\{f_{i-1}, i+p_i\}\)

  • \(i\) 向左与前面的前缀拼起来。设 \(t\) 为 \(f_t \ge i - p_i\) 的最小位置。\(f_{i} \leftarrow \max\{i-1,\displaystyle \max_{t<j<i} \{j + p_j\}\}\)

\(t\) 可以二分,\(\max\{j + p_j\}\) 可以 RMQ。复杂度线性对数。

标签:le,min,max,CF,3000,MEX
From: https://www.cnblogs.com/Link-Cut-Y/p/18240701

相关文章

  • 「杂题乱刷2」CF2038B
    题目链接CF2038BMakeItEqual题意简述这东西好久没写了啊。阿瓦在一个幻想王国里。他走在草坪上,发现有\(n\)个数字精灵祝他生日快乐。阿瓦非常开心。因为最多可能会有\(2\times10^5\)个精灵为他庆生。但是,对于每个数字精灵都有一个饱食度\(a_i\),如果有任意两个数......
  • app.Environment.IsDevelopment、app.UseStaticFiles() 、在ASP.NET Core应用程序中,调
    在ASP.NETCore应用程序中,app.UseStaticFiles()是一个中间件方法,用于启用对静态文件的服务。这意味着当你的应用程序接收到对静态资源(如HTML文件、CSS文件、JavaScript文件、图片等)的请求时,UseStaticFiles中间件会处理这些请求并提供相应的文件。在ASP.NETCore应用程序中,app.E......
  • 【VMware VCF】基于 RDU 方式更新 VCF 环境中的 vCenter Server 组件。
    ReducedDowntimeUpgrade(RDU)是一种基于“迁移”的vCenterServer更新方式,通过临时部署一个与源vCenterServer完全一致的目标vCenterServer(类似于跨版本vCenterServer升级),然后找一个维护窗口期完成源vCenterServer和目标vCenterServer的切换即可,由于使用RDU更新......
  • [题解]CF1063B Labyrinth
    CF1063BLabyrinth~Codeforces数据范围较小,考虑使用搜索。由于向左向右的步数限制过大,我们只能用\(x,y\)进行记忆化,否则空间和时间都过不去。既然状态只有\(x,y\),我们就要让最优情况最先被遍历到,所以考虑BFS。我们考虑,对于\((x,y)\)状态来说,什么样的情况是最优的?显然,对于......
  • CF2039E - Shohag Loves Inversions
    CF2039E-ShohagLovesInversions题面有一个整数数组\(a=[0,1]\),可以重复执行以下操作任意多次:假设\(k\)是当前数组\(a\)中的逆序对的个数。将\(k\)插入\(a\)中的任意位置,包括开头或结尾。例如,如果是\(a=[4,6,2,4]\),那么逆序对数就是\(k=3\)。因此,......
  • [题解]CF1775E The Human Equation
    来个另类解。思路手玩一下样例,发现减法只会用在正数上,加法只会用在负数上,大概是因为如何在负数上用了减法或在正数上用了加法,都需要额外的次数去消掉。然后注意到在两个正数中间包这的所有负数可以直接缩成一个数,两个负数中间包着的所有正数也可以直接缩成一个数。那么现在的序......
  • CF755D 数学规律法 解题报告
    更好的阅读体验题目传送门这道题怎么都是数据结构题解?那本蒟蒻就来一篇数学题解(貌似是本题唯一的线性做法)。思路:模拟赛上有一道十分相似的题目,但是一开始想到的是用数据结构维护每次插入一条线段之前查询有多少根线段与其相交,但是太蒻了不会打,所以只好思考数学解法。注意到本......
  • ACFIM0019 Financial Management
    ACFIM0019FinancialManagementDecember2024Overview•   Yoursummative courseworkrepresents 100% of the finalmark fortheunit.•   The coursework is in the form of three pieces of reports (see detailed requirements in the ......
  • CF51(详细版)
    前言:前几题无代码,讲解简略(直接模拟有什么好讲的)被小学妹说题解简略,遂贴了核弹的题解模板3.核弹和小学妹会\(lct\)好巨好巨正片开始!CF51A题面(可从下方链接跳转看原题题面):题目传送门结论:模拟题完结撒花!--------------------分割线--------------------CF51......
  • CF1780
    A.HayatoandSchoolCF原题链接题目大意:共\(t\)组数据,每组数据给出一个长度为\(n\)的序列\(a_{i}\),要求找出\(a\)中的三个数,使得它们的和是奇数。若能找到,输出YES并输出它们在序列\(a\)中的位置,若无解则输出NO。\((1\leqslantt\leqslant10^{4},3\leqslantn\leqslant300,\Si......