首页 > 其他分享 >【题解】Solution Set - NOIP2024集训Day14 CDQ分治

【题解】Solution Set - NOIP2024集训Day14 CDQ分治

时间:2024-08-23 10:17:55浏览次数:12  
标签:Set 题解 Solution Day14 CDQ NOIP2024

【题解】Solution Set - NOIP2024集训Day14 CDQ分治

https://www.becoder.com.cn/contest/5482


「CF364E」Empty Rectangles

*3000 摆烂了。


「SDOI2011」拦截导弹

CDQ的例题,之前做过(现在试图自己再做出来。


第二问只用在第一问里面记录每一次是从哪个 \(j\)​ 转移过来的,以及当前位的方案数就行了。

看了之前的代码,发现其实还不止,这里其实还需要乘上后面的方案数。

也就是说,可能性 = (前方案数 \(\times\) 后方案数) \(\div\) 总方案数


下对于第一问考虑 dp。

\(f_i\) 前 \(i\) 个,钦定拦截第 \(i\) 个能拦截的最多个数。

令:\(f_0=0,h_0=\inf,v_0=\inf\)。

有转移:

\[f_i=\max_{0\le j<i\wedge h_j>h_i\wedge v_j>v_i}f_j+1 \]

显然一个三维偏序(还有一维下标),考虑用 CDQ 将 dp 优化到 \(O(n\log^2n)\)。


试着用残余的记忆,自己重新把三维偏序胡出来。下面是口嗨时间。

回忆一下 CDQ 的步骤:

  1. 先把大于等于 mid 的 \(h\) 分到左边,小于的分到右边。(实际上这一维最好以下标分开(这样就不用 stable_partition 了。

    考虑把左边的部分按照 \(h\) 重新排序。

(口胡不下去了(因为感觉怪怪的就去看了一下之前的代码,感觉还是挺好理解,所以就不想写了(

所以下一个任务是在 15min 之内爆切 cdq(雾

标签:Set,题解,Solution,Day14,CDQ,NOIP2024
From: https://www.cnblogs.com/CloudWings/p/18375427

相关文章

  • P10559 [ICPC2024 Xi'an I] The Last Cumulonimbus Cloud 题解
    这种题有一个常见的根号分治做法:设\(d\)为度数,显然有\(O(1)\)修改单点,\(O(d)\)查询邻域和\(O(d)\)修改邻域,\(O(1)\)查询单点两种暴力。对度数大于\(\sqrtn\)的点使用前者,度数小于等于\(\sqrtn\)的点使用后者,可以做到\(O(m\sqrtn)\)的时间复杂度。这种做法的本......
  • CF1575G GCD Festival 题解
    考虑欧拉反演\[\sum\limits_{d\midn}\varphi(d)=n\]则原式可以化为\[\begin{align*}&\sum\limits_{i=1}^n\sum\limits_{j=1}^n\gcd(a_i,a_j)\cdot\gcd(i,j)\\=&\sum\limits_{i=1}^n\sum\limits_{j=1}^n\gcd(a_i,a_j)\sum\li......
  • CF163E e-Government 题解
    题目传送门前置知识AC自动机|树状数组解法一次性将所有模式串加入AC自动机,然后处理加入和删除,考虑单次操作对答案的贡献。因为模式串\(T\)在文本串\(S\)中出现的次数之和等价于\(T\)在\(S\)的所有前缀中作为后缀出现的次数之和。这就很和\(fail\)树上跳到根节......
  • 3.5 set(集合)
    set(集合)无序集合,重点就是去重和无序。(1)添加元素saddkeymember1member2...向键authors的集合中添加元素zhangsan、lisi、wangwusaddauthorszhangsanlisiwangwu(2)获取集合的所有的成员smemberskey获取键authors的集合中所有元素smembersauthors(3)获取集合的长......
  • 3.6 zset(有序集合)
    zset(有序集合)有序集合(score/value),去重并且根据score权重值来进行排序的。score从小到大排列。(1)添加成员zaddkeyscore1member1score2member2score3member3....设置榜单achievements,设置成绩和用户名作为achievements的成员127.0.0.1:6379>zaddachievements61xiao......
  • HashMap&HashSet源码解读
    HashMapHashSet需要提起的只有一句话HashSet使用适配器模式包装了HashMap,所有的Value都是同一个Object对象,只有Key不一样,HashSet就是HashMap的KeySetHashMap概述一个允许Key为空也允许Value为空的哈希表Hash冲突当多个对象的hashcode计算结果一致时,需要处理冲突开放寻址......
  • [题解] permutation
    [题解]Permutation解析一眼DP或者组合。70pts场上推的DP对于\((4,2,2)\),先把所有序列枚举出来:\[\begin{split}1\\\2\\1\\\3\\1\\\4\\--\\2\\\3\\2\\\4\\3\\\4\end{split}\]可以发现,对于分割线上的部分,可以看作\((3,1,1)\)的所有序列......
  • Solution - Codeforces 1970G3 Min-Fund Prison (Hard)
    时间\(\mathcal{O}(\frac{n\sqrt{n}\logn}{\omega})\)空间\(\mathcal{O}(\frac{n\logn}{w})\)的爆标做法。首先无解当且仅当图联通且无割边。首先考虑加边的贡献。一个比较直观的感受就是只会尽可能少的加边,即加边到整个图连通。证明考虑删掉的边。如果加多了边导致删......
  • set 的详细用法(set 排序、set 的遍历、set 的多种倒序遍历方法、set 的基本成员函数)
    目录一:set的简介二:set的使用(要包含头文件)1.set的定义2.set的基本成员函数3.set的遍历(1)迭代器iterator(即升序输出)(2)倒序输出1.rbegin()和rend()2.当然,也可以逆向思维一下。​^^3.用greater实现降序排列三:应用基本成员函数的代码【总结】有上述代码可以看出,插......
  • csp模拟27-金箱子(题解)
    题目链接(显然还没有找到原题)虽说我现在才学会期望dp显得不太好,但没办法,谁让我比较菜~~,之前模拟赛已经考过几道类似的题了,但都一笔带过了,这次算是正式学习了一下这类题,于是就有了这篇题解。首先看到k次方首先想到的就是我们在进行dp转移的时候不太方便,这个时候很自然的想到二项......