分治
文章平均质量分 81
九野的博客
这个作者很懒,什么都没留下…
展开
-
Codeforces 414C Mashmokh and Reverse Operation 归并排序在线求交换序列后逆序数
题目链接:http://codeforces.com/contest/414/problem/C 先复制一个思路: 解法:2^n个数,可以联想到建立一棵二叉树的东西,比如 2,1,4,3就可以建成下面这样 [2,1,4,3] le原创 2014-04-08 18:14:33 · 2512 阅读 · 0 评论 -
Codeforce 364E 二维分治 包含K个1的 子矩阵个数
题目链接:http://codeforces.com/problemset/problem/364/E #include #include #include #include #include #define N 2550 #define Mid(x,y) ((x+y)>>1) using namespace std; int n, m, K; __int64 ans原创 2013-12-21 14:54:09 · 3326 阅读 · 0 评论 -
Codeforces 97B Superset 平面分治
题目链接:点击打开链接 题意: 给定一个点集 添加一些点后再把这个点集输出来。 添加完点后使得对于点集内任意2个点都满足下面2条中至少一条 1、在同一水平线上或在同一垂直线上 2、所围成的矩阵里有其他点。 思路: 平面分治 #pragma comment(linker, "/STACK:1024000000,1024000000") #include #include原创 2014-10-02 23:26:06 · 1640 阅读 · 0 评论 -
HDU 4812 D Tree 树分治+逆元+hash新姿势
题意: 给定n个点的树 K 下面n个数是点权 下面n-1行给出树边。 问: 是否存在一条路径使得路径上点权积 % mod = K 若存在则输出路径的两端。 若存在多条路径则输出字典序最小的一条。 思路: 按树重心分治。 分成路径是否经过树重心。 然后用力码。。 has[x] = u; 表示乘积为x 对应的点是u 但这样has就不能用计数器来优化清空。原创 2014-10-04 21:18:44 · 2758 阅读 · 0 评论 -
POJ 1741 点分治
题意: 给定n个点的树, K值 下面n-1条边 问 两点之间距离 采用点分治,无根树转有根树时 根为树的重心(可以把树高度降低,防止树退化成链) 思路: 对于一棵 以u为根的树 以下我们成(a,b)为合法点对(即dist(a,b) (a, b) 之间路径是唯一确定的。 将点对分2类: 1、两点间路径经过 u 点 2、两点间路径不经过u点 = 两点都在u的同一子树原创 2013-11-22 22:59:46 · 1981 阅读 · 0 评论