随笔分类 -  分治

摘要:[题目链接] https://codeforces.com/contest/715/problem/C [算法] 考虑点分治 一条路径(x , y)合法当且仅当 : d(x) * 10 ^ dep(x) + d(y) = 0(mod m) , 其中d(u)表示u到分治重心路径上数字拼接起来所形成的数 阅读全文
posted @ 2019-03-16 23:13 evenbao 阅读(204) 评论(0) 推荐(0)
摘要:[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=1095 [算法] 首先建出点分树,然后每一个点开两个堆。“第一个堆记录子树中所有节点到父亲节点的距离 ,第二个堆记录所有子节点的堆顶 ,那么一个节点的堆2中的最大和次大加起来就是子树中经 阅读全文
posted @ 2019-03-15 23:08 evenbao 阅读(238) 评论(0) 推荐(0)
摘要:[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=1176 [算法] CDQ分治 + 树状数组即可 时间复杂度 : O(Nlog^2N) [代码] 阅读全文
posted @ 2019-02-10 19:08 evenbao 阅读(231) 评论(0) 推荐(0)
摘要:[题目链接] https://codeforces.com/contest/161/problem/D [算法] 点分治 记cnt[u][i]表示以u为根的子树中深度为i的点有多少个 时间复杂度 : O(NlogN) [代码] 阅读全文
posted @ 2018-12-25 22:13 evenbao 阅读(224) 评论(0) 推荐(0)
摘要:[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=3697 [算法] 首先 , 将黑色的边变成1 ,白色的边变成-1 那么 , 问题就转化为了有多少条路径满足 : 1. 路径长度为0 2. 路径中间存在一个点使得这个点可以将这条路径分成两 阅读全文
posted @ 2018-11-02 23:18 evenbao 阅读(253) 评论(0) 推荐(0)
摘要:[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=3784 [算法] 首先简单介绍一下点分治序列 : 点分治序列和DFS序列,BFS序列等类似,是将点分治过程中每次的分治中心连在一起形成的序列,显然,点分治序列的长度是(N log N)的 阅读全文
posted @ 2018-07-18 15:09 evenbao 阅读(260) 评论(0) 推荐(0)
摘要:[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=1316 [算法] 点分治 由于边权较大,笔者在计算时使用了STL-set 注意当询问为0时,要输出"Yes" [代码] 阅读全文
posted @ 2018-07-18 11:58 evenbao 阅读(136) 评论(0) 推荐(0)
摘要:[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=3365 [算法] 点分治 [代码] 阅读全文
posted @ 2018-07-16 17:03 evenbao 阅读(116) 评论(0) 推荐(0)
摘要:【题目链接】 https://www.lydsy.com/JudgeOnline/problem.php?id=2599 【算法】 点分治 【代码】 阅读全文
posted @ 2018-07-16 15:06 evenbao 阅读(153) 评论(0) 推荐(0)
摘要:【题目链接】 https://www.lydsy.com/JudgeOnline/problem.php?id=2152 【算法】 点分治 【代码】 阅读全文
posted @ 2018-07-15 15:50 evenbao 阅读(149) 评论(0) 推荐(0)
摘要:【题目链接】 http://poj.org/problem?id=1741 【算法】 点分治 要求距离不超过k的点对个数,不妨将路径分成两类 : 1. 经过根节点 2. 不经过根节点 考虑第1类路径,不妨从根节点进行一次深度优先遍历,求出每个点与根节点的距离,将距离排序,然后用两个指针扫描一遍即可, 阅读全文
posted @ 2018-07-15 15:08 evenbao 阅读(111) 评论(0) 推荐(0)
摘要:【题目链接】 http://codeforces.com/problemset/problem/429/D 【算法】 令Si = A1 + A2 + ... + Ai(A的前缀和) 则g(i,j) = Sj - Si f(i,j) = (i-j)^2 + (Si - Sj)^2 观察这个式子,我们发 阅读全文
posted @ 2018-06-28 22:25 evenbao 阅读(207) 评论(0) 推荐(0)
摘要:【题目链接】 http://acm.hdu.edu.cn/showproblem.php?pid=1007 【算法】 答案为平面最近点对距离除以2 【代码】 阅读全文
posted @ 2018-06-28 21:13 evenbao 阅读(110) 评论(0) 推荐(0)
摘要:【题目链接】 http://poj.org/problem?id=3714 【算法】 分治求平面最近点对 【代码】 阅读全文
posted @ 2018-06-28 20:50 evenbao 阅读(141) 评论(0) 推荐(0)
摘要:【题目链接】 点击打开链接 【算法】 本题是一个很经典的问题 : 归并排序求逆序对数,可以用分治算法解决 分治,分而治之,分治算法的思想就是将一个问题转化为若干个子问题,对这些子问题分别求解,最后, 通过子问题的答案反推得到总的答案 通过归并排序求逆序对数的算法流程图如下 : 【代码】 阅读全文
posted @ 2018-06-13 22:08 evenbao 阅读(162) 评论(0) 推荐(0)