随笔分类 -  分治算法

摘要:链接:https://nanti.jisuanke.com/t/39277 思路: 一开始看着很像树分治,就用树分治写了下,发现因为异或操作的特殊性,我们是可以优化树分治中的容斥操作的,不合理的情况只有当两点在一条链上才存在,那么直接一遍dfs从根节点向下跑途中维护一下前缀和,把所有情况中不合理情况 阅读全文
posted @ 2019-05-29 13:05 冥想选手 阅读(577) 评论(0) 推荐(0)
摘要:Description 有n朵花,每朵花有三个属性:花形(s)、颜色(c)、气味(m),用三个整数表示。 现在要对每朵花评级,一朵花的级别是它拥有的美丽能超过的花的数量。 定义一朵花A比另一朵花B要美丽,当且仅Sa>=Sb,Ca>=Cb,Ma>=Mb。 显然,两朵花可能有同样的属性。需要统计出评出每 阅读全文
posted @ 2018-12-22 20:34 冥想选手 阅读(157) 评论(0) 推荐(0)
摘要:链接:http://poj.org/problem?id=2114 题意: 求树上距离为k的点对数量; 思路: 点分治。。 实现代码: 阅读全文
posted @ 2018-09-30 12:27 冥想选手 阅读(289) 评论(0) 推荐(0)
摘要:链接: https://www.lydsy.com/JudgeOnline/problem.php?id=2141 思路: 其实就是求动态逆序对。。。cdq降维,用树状数组前后求两遍逆序对就好了 切水题真爽QAQ 实现代码: 阅读全文
posted @ 2018-08-24 16:53 冥想选手 阅读(184) 评论(0) 推荐(0)
摘要:链接:https://www.lydsy.com/JudgeOnline/problem.php?id=3295 思路: 可以将这道题看成倒着插入,这样就可以转化成求逆序对数,用CDQ分治降维,正反用树状数组求两遍逆序对就好了。 这道题还可以用在线的树套树或者可持久化线段树来写。。 实现代码: 阅读全文
posted @ 2018-08-23 13:34 冥想选手 阅读(181) 评论(0) 推荐(0)
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5126 思路:支持离线,那么我们可以用两次CDQ分治使四维降为二维,降成二维后排个序用树状数组维护下就好了 实现代码: 阅读全文
posted @ 2018-08-20 15:12 冥想选手 阅读(453) 评论(0) 推荐(0)
摘要:题面:(复制别人的。。。) Description 给一棵树,每条边有权.求一条路径,权值和等于K,且边的数量最小. 给一棵树,每条边有权.求一条路径,权值和等于K,且边的数量最小. Input 第一行 两个整数 n, k第二..n行 每行三个整数 表示一条无向边的两端和权值 (注意点的编号从0开始 阅读全文
posted @ 2018-08-07 16:29 冥想选手 阅读(163) 评论(0) 推荐(0)
摘要:题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=2152 思路: 要想两点之间距离为3的倍数,那么用t0表示该点距离重心的距离对3取模为0,依此得t1,t2,那么两点之间距离为3的倍数只有三种可能:t1-t2,t2-t1,t0-t0,将所有 阅读全文
posted @ 2018-07-17 14:06 冥想选手 阅读(162) 评论(0) 推荐(0)
摘要:题目链接:http://poj.org/problem?id=1741 题意:求树上两点之间距离小于等于k的点对的数量 思路:点分治模板题,推荐一篇讲的非常好的博客:https://blog.csdn.net/qq_39553725/article/details/77542223 实现代码: 阅读全文
posted @ 2018-07-16 12:37 冥想选手 阅读(129) 评论(0) 推荐(0)