【题解】Solution Set - NOIP2024集训Day14 CDQ分治
【题解】Solution Set - NOIP2024集训Day14 CDQ分治
https://www.becoder.com.cn/contest/5482
「CF364E」Empty Rectangles
*3000
摆烂了。
好像是所谓 “二维分治” 的板子?
https://www.luogu.com.cn/article/807acdxs
「SDOI2011」拦截导弹
CDQ的例题,之前做过(现在试图自己再做出来。
第二问只用在第一问里面记录每一次是从哪个
看了之前的代码,发现其实还不止,这里其实还需要乘上后面的方案数。
也就是说,可能性 = (前方案数
下对于第一问考虑 dp。
令:
有转移:
显然一个三维偏序(还有一维下标),考虑用 CDQ 将 dp 优化到
试着用残余的记忆,自己重新把三维偏序胡出来。下面是口嗨时间。
回忆一下 CDQ 的步骤:
-
先把大于等于
mid
的 分到左边,小于的分到右边。(实际上这一维最好以下标分开(这样就不用stable_partition
了。考虑把左边的部分按照
重新排序。
(口胡不下去了(因为感觉怪怪的就去看了一下之前的代码,感觉还是挺好理解,所以就不想写了(
所以下一个任务是在 15min 之内爆切 cdq(雾
结果花了20多分钟。😅
「BZOJ2961」共点圆
实际上数据保证的是:
考虑形式化一下题意:
一个点
我们就是要找满足上式的
不会了。😥
https://www.cnblogs.com/cjyyb/p/9466396.html
这类题还是做少了,每次都是这种式子推出来,但是不知道怎么用函数去理解了。
实际上,我们也不必求出具体有多少个满足(因为这个问题严格由于原题目),而这个式子的意思其实就是每个询问相当于给了一条直线,然后每个圆心必在这条线上面。
考虑把所有的圆心维护一个下凸包,然后斜率从小到大排序,每次去切凸包找到满足条件的最大截距,然后跟直线的截距比一下大小就好了。
考虑到取 max 具有结合律,我们就可以 cdq。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话