分治
Faithfully__xly
这个作者很懒,什么都没留下…
展开
-
1017 - 树分治 - Tree(POJ 1741)
传送门 分析 分治是个好东西,树分治也很妙,其擅长解决树上路径一类的问题 在这里主要是用的点分治(据说比边分治简单) 其实其思想不过也就是将一个大问题,不停的分割分割成子问题,然后需要注意(思考)的就是两个子问题之间产生答案 挪到树上 我们就分为两种情况 处理过重心的路径 处理子树中的路径 事实证明,TLE从来都不是卡常的锅,你见过哪道题是需要卡常才能A的??? 一般...原创 2018-10-17 23:25:32 · 149 阅读 · 0 评论 -
1021 -点分治 - 聪聪可可(BZOJ 2152)
传送门 题意 给定一棵边带权树,问有多少个点对,其简单路径上的权值和为3的倍数 分析 这和之前做过的Tree POJ 1741有异曲同工之妙,解决树上的点对(路径)关系,我们自然想到了分治算法 问题就变得简单起来,我们只需要思考如何统计路径和为3的倍数的点对,其他的就按照点分治的一般套路走 上一道例题,我们是记录的dis[i],表示 i 这个点到重心的距离,然后按距离排序,二分,求得方案数 搬到这...原创 2018-10-21 17:47:06 · 154 阅读 · 0 评论 -
线段树分治 - 「离线可过」动态图连通性(LOJ121)
传送门 Analysis 线段树分治入门 所谓线段树分治就是先把操作分成logn个连续不相交的区间分别维护信息。 最后按线段树从上到下再从左到右的遍历方式一起统计答案。 这道题可以按时间建树,每次相当于在一段区间里增加边。 这样我们就避免的删边的操作 由于每次回溯的时候要撤销本次操作,我们用并查集就不可以路径压缩 又因为我们每次都是后加入的先撤销,所以并查集可做,用一个栈记录一下即可 总的时间复...原创 2019-08-08 21:07:39 · 395 阅读 · 0 评论 -
线段树分治 - 二分图(BZOJ 4025)
传送门 Analysis 快来学习学习 一个图是二分图的充要条件是不含奇环 先按照套路将每条边的影响在线段树上拆做log个区间 然后考虑如何快速判断当前状态是否为一个二分图 当加边的时候,若(u,v)不连通:一定不会构成奇环,将它加入。 若(u,v)已经联通,则不加入这条边,而是查询u和v两点间的距离。若为偶数则加上这条边后会形成奇环。一个奇环不可能分成数个偶环,所以从此以后都不再是二分图。...原创 2019-08-09 09:33:55 · 252 阅读 · 0 评论 -
分治算法学习笔记
2019/8/7 xehoth授课 Part I 点分治 复习课√ 由于以前学过,所以听起来蛮轻松。 例题1 tree 例题2 聪聪可可 例题3 Race get一个超棒的求树的重心的方法 利用性质:树的重心的任意一颗子树大小都不超过节点数的一半 自己以前的写法被华丽丽地卡T Part II 线段树合并 (好像和分治没啥关系,不管那么多了) 复习课*2√ 由于以前也听过…… 今天重新打了一遍,...原创 2019-08-09 09:35:00 · 201 阅读 · 0 评论 -
点分治 -Race [IOI2011]
传送门 Analysis 点分治 1、求树的重心 2、计算以当前重心为根的子树的答案 3、去掉以当前重心儿子为根的子树的答案 4、枚举每个儿子,分治 考虑计算过程如何实现 我们不妨记一个cnt数组,cnt[i]表示使用i条边权值为k的有多少对 每次实现2的时候,权值设为+1 每次实现3的时候,权值设为-1 把子树内所有的dis排序,计算有多少对权值和为k的,两个指针扫一遍就可以了。 Code ...原创 2019-08-07 16:45:33 · 132 阅读 · 0 评论 -
点分治 + 分数规划 - 重建计划(BZOJ 1758)
传送门 Analysis 一眼分数规划 然后就瓜起了 “如何判断是否存在一条边数在[L,R]的路径满足它的权值非负” 经过深思熟虑(网上题解)发现,通常情况下处理树上路径都可以考虑点分治 然后就蛮套路了 用一个单调队列维护一下,将子树按深度从小到大遍历(这样可以防止复杂度退化到n2) 具体实现: f[i]f[i]f[i]表示已经搜过的子树中,深度为iii的最大权值和 g[i]g[i]g[i]表示...原创 2019-08-09 19:56:08 · 196 阅读 · 0 评论