- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
分治基础题选讲
分治基础题选讲
By jszyxw
NOIP难度的分治
Codeforce #Round213 div1. E
给出一个n*m的01网格。
求有多少矩形中恰好包含k个1.
n,m=2500 k=6
Codeforce #Round213 div1. E
NOIP难度的分治
BZOJ4237 稻草人
田地需要满足以下条件:
田地的形状是边平行于坐标轴的长方形;
左下角和右上角各有一个稻草人;
田地的内部(不包括边界)没有稻草人。
给出每个稻草人的坐标,请你求出田地的个数
N≤1e5
BZOJ4237 稻草人
先将点按y轴排序,然后分治。
首先分治求出上下两块的答案,然后考虑左下角在下半部分,右上角在上半部分的答案
设左下角为(x1,y1),右上角为(x2,y2)
显然对于上部分有:对于所有横坐标在(x1,x2)的点,纵坐标≥y2
显然对于下部分有:对于所有横坐标在(x1,x2)的点,纵坐标≤y1
维护两个单调栈,枚举右上角,在单调栈上二分找符合条件的左下角即可
BZOJ2001 [Hnoi2010]City 城市建设
一个N个点M条边的无向图,要求支持如下操作:
修改一条边的边权,并输出当前最小生成树的边权和
N,M,Q ≤ 50 000
BZOJ2001 [Hnoi2010]City 城市建设
看起来不太好分治,因为问题规模始终是N个点,M条边。
考虑缩小问题规模
BZOJ2001 [Hnoi2010]City 城市建设
设q个询问里修改的边集为Q,边的全集为E,那么对于E-Q中的边,做一遍MST,MST中的边集设为G,那么对于E-Q-G中的边,不论询问怎么改变,这些边都不会在MST中,所以我们可以删除这些边。
这样边集大小变成n - 1 + q, 点集大小仍为n
之后将Q中的边的边权都赋值为-INF,这时做一遍MST,如果E-Q的边在MST中,这时代表就算修改的边最小时这些边也要选,也就是这些边是保证MST连通性的必要的边,这些边我们也没有必要考虑,因为必须要选,所以将这条边连接的两个点合并成一个点。
边数和点数都减少n - q - 1,边集大小 = (n + q - 1) - (n - q - 1) = 2 * q,点集大小 = n - (n - q - 1) = q + 1
BZOJ2001 [Hnoi2010]City 城市建设
这样规模就变成了O(q)的了。
我们对询问分治,在分治的同时执行以上两个操作,总复杂度O(Q log^2 Q)
BZOJ1095 [ZJOI2007]Hide 捉迷藏
维护一棵树,每个节点有两个状态:黑/白。
要求支持下列操作:
将黑点改为白点,白点改为黑点
询问树上黑点间最大的距离
N,Q ≤ 500 000
BZOJ1095 [ZJOI2007]Hide 捉迷藏
假如没有修改操作,应该是比较简单的树分治
我们点分治的时候维护子树内的最长路径,到重心的最长路径的最大值和次大值即可。
现在加入了修改操作,我们就用堆维护上述信息即可。
时间复杂度O(Q log^2 N)
NOIP难度的分治
Uoj #55 紫荆花之恋
给出一个初始只有1个点的带权树。
每个点有个范围Ri,如果两个点满足Dis(i,j)=Ri+Rj,则他们是朋友。
每次可以添加1个叶节点,并询问此时树中有多少朋友。
n=10^5 强制在线。
Uoj #55 紫荆花之恋
如果这棵树是深度为logN的随机树怎么做?
Uoj #55 紫荆花之恋
首先式子的形式是Dis(i,j)=Ri+Rj,变形得Dis(j,lca) – Rj = Ri - Dis(i,lca)
那么对于每个lca我们维护一个平衡树,把以lca为根的子树中所有的Dis(j,lca)-Rj全都扔进去
然后对于每个i,我们沿着父亲指针,把路径上的所有小于等于Ri-Dis(i,lca)的全都计入答案,然后把Dis(i,lca)-Ri加进路径上的平衡树
但是这样算重复,即在不是i和j的lca的节点中被算进去,那么我们对于lca(I,j)的每个子树再维护一个平衡树储存Dis(j,p)-Rj,从对应子树的平衡树中减掉这样的点对就行了
时间复杂度O(N log^2 N)
Uoj #55 紫荆花之恋
但是树不是深度logN的随机树。。怎么办?
点分治生成的点分治树是深度logN的!用树分治!
但是每次插入新节点,会导致树分治失效,怎么办?
替罪咩!
用替罪羊树的思想,当点分治树不平衡时暴力重构即可。
时间复杂度O(N log^2 N)
Uoj #55 紫荆花之恋
用什么平衡树呢?
Splay?Avl?Treap?Set?替罪咩?
某学长曾说过:开O2的set比手打的平衡树快!
然后用set试了一下。。。T飞了!
实践说明平衡树常数:Splay 跳表Set Treap替罪
您可能关注的文档
- 关于举办“‘it&at’教育工程技能大赛”的通知.doc
- 关于举办第二届科技节的通知.doc
- 关于修订课程设置及教学大纲有关事宜的通知.doc
- 关于光电效应的几个问题.doc
- 关于受理2011年天津市科技计划项目(第一批)申报 .doc
- 关于唐山世创奥罗拉食品机械制造有限公司厂址和名 .doc
- 关于建立和完善药品生产企业和产品数据库的通知.doc
- 关于开展普惠性民办幼儿园等级认定工作的通知(教 .doc
- 关于申报2011年度安全生产技术改造及重大隐患治理 .doc
- 关于申报2015年重庆市社会事业与民生保障科技创新 .doc
- 2026年新疆师范大学辅导员招聘备考题库最新.docx
- 2026年上海立达学院辅导员招聘备考题库最新.docx
- 2025年长城铝业公司职工工学院辅导员招聘备考题库附答案.docx
- 2025年重庆应用技术职业学院辅导员考试笔试真题汇编附答案.docx
- 2025年香港中文大学(深圳)辅导员招聘考试真题汇编最新.docx
- 2025年闽南科技学院辅导员考试笔试真题汇编附答案.docx
- 2025年青岛大学辅导员招聘考试真题汇编附答案.docx
- 2025年长春早期教育职业学院辅导员考试笔试真题汇编最新.docx
- 2026年东北农业大学辅导员招聘备考题库最新.docx
- 2025年陕西学前师范学院辅导员考试笔试题库最新.docx
最近下载
- 立式打蛋机的设计毕业设计论文.doc VIP
- 2024-2025学年初中音乐七年级上册(2024)人音版(2024)教学设计合集.docx
- 黑龙江省哈尔滨市香坊区2024-2025学年九年级上学期期末考试历史试题(含答案).pdf VIP
- 触发器和寄存器及.pptx VIP
- 哈工大测试技术与仪器大作业传感器的综合应用2.pdf VIP
- 汽车钢板与应用-下(冷板).ppt VIP
- 2025至2030年中国煤质乙二醇行业市场行情动态及未来趋势研判报告.docx
- 2025年基层医生肾上腺疾病的规范化诊治题库答案-华医网项目学习.docx VIP
- 2025年中国酱类制品市场深度评估及行业投资前景咨询报告.docx VIP
- 西方马克思主义考试试题.docx VIP
原创力文档


文档评论(0)