码迷,mamicode.com
首页 >  
搜索关键字:分治    ( 3950个结果
BZOJ 2716 Violet 3 天使玩偶 CDQ分治
题目大意:初始给定平面上的一个点集,提供两种操作: 1.将一个点加入点集 2.查询距离一个点最小的曼哈顿距离 K-D树是啥。。。不会写。。。我只会CDQ分治 对于一个询问,查询的点与这个点的位置关系有四种,我们现在只讨论左下角,剩余三个象限同理 设询问的点为(x,y),查询的点为(x',y') 则dis=(x-x')+(y-y')=(x+y)-(x'+y') 于是我们要找到查询的点左...
分类:其他好文   时间:2014-10-11 20:20:06    阅读次数:342
POJ 1987 BZOJ 3365 Distance Statistics 树的分治(点分治)
题目大意:(同poj1741,刷一赠一系列) CODE: #include #include #include #include #define MAX 20010 #define INF 0x3f3f3f3f using namespace std; int points,edges,k; int head[MAX],total; int next[MAX << 1...
分类:其他好文   时间:2014-10-11 19:19:56    阅读次数:174
POJ 1741 Tree 树的分治(点分治)
题目大意:给出一颗无根树和每条边的权值,求出树上两个点之间距离 思路:树的点分治。利用递归和求树的重心来解决这类问题。因为满足题意的点对一共只有两种: 1.在以该节点的子树中且不经过该节点。 2.路径经过该节点。 对于第一种点,我们递归处理;第二种点,我们可以将所有子树的节点到这个子树的根节点的距离处理出来,然后排序处理出满足要求的点对的个数。 按照正常的树的结构来分割子树,这样...
分类:其他好文   时间:2014-10-11 18:14:35    阅读次数:201
剑指offer?
1. 在一个m*n二维数组中,每一行都按照从左到右的递增顺排序,每一列都按照从上到下的顺序排序,请完成一个函数,输入这样一个二维数组和一个整数,判断数组中是否含有该整数。1 2 8 92 4 9 124 7 9 126 8 11 15这题有更好的做法吗?O(m+n)是最好的吗?网上说的分治法只对m=...
分类:其他好文   时间:2014-10-11 01:19:34    阅读次数:213
POJ 1741 Tree 树的点分治
题目大意:给定一棵树,求树上距离不超过k的点对(x,y) (x 男人八题第五题。。。其实没那么难的说。。。比NOI2014最后一题好写多了0.0 首先两个点之间的路径有两种情况: 1.两点之间路径经过根 2.两点之间路径不经过根 首先讨论情况1 我们从根出发进行一次DFS,求出每个点到根的距离,排序,然后扫一遍数组O(n)出解 但其中如果两个点都属于根的同一棵子树,那么这两个点的路径...
分类:其他好文   时间:2014-10-10 15:38:04    阅读次数:239
快速排序
快速排序是基于分治思想的排序,以递增排序为例: 首先选取一个基准元素pivot,将小于pivot的元素移到其左侧, 大于pivot的元素移到其右侧。这一轮固定了pivot的位置。 然后对其左右两侧执行相同的操作。 快速排序平均时间复杂度O(nlogn),最差时间复杂度O(n^2);空间复杂度O(1)。 示例代码如下: #include #define Elemtype int int ...
分类:其他好文   时间:2014-10-10 15:31:34    阅读次数:177
BZOJ 3365 Distance Statistics 树的点分治
题目大意:同POJ1741 链接:http://blog.csdn.net/popoqqq/article/details/39959803 和POJ1741一样的题,土豪题,POJ有道一样的题,做完1741可以水水 我会告诉你我直接改了下上题的代码么0.0 数据范围4W 距离最大1000 不会爆INT 放心写吧 #include #include #include #include #...
分类:其他好文   时间:2014-10-10 15:20:54    阅读次数:755
快速排序算法
快速排序采用一种“分而治之、各个击破”的观念。快速排序使用分治法(Divide and conquer)策略来把一个序列(list)分为两个子序列(sub-lists)。步骤为:1、从数列中挑出一个元素,称为 "基准"(pivot),2、重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基...
分类:其他好文   时间:2014-10-10 14:38:04    阅读次数:206
归并排序
归并排序是基于分治思想的排序,一递增排序为例: 首先将数组平分为两份,将左侧递增排序,右侧递增排序, 然后将两侧归并起来,使整体递增有序。 示例代码如下: #include #include #define Elemtype int Elemtype *B; void merge(Elemtype A[],int low,int mid,int high) { for(int i=l...
分类:其他好文   时间:2014-10-10 13:33:47    阅读次数:173
UvaLive 6667 Longest Chain (分治求三元组LIS&树状数组)
题目链接: here 题意: 和hdu4742类似。区别就是一部分三元组是直接给出的。还有一部分是用他给的那个函数生成的。还有就是这里的大于是严格的大于a>b必须ax>bx,ay>by,az>bz。 思路: 思路也和hdu4742here类似。只是有几个比较棘手的问题。现在变成严格大于了。对于y还是很好办的。我们在排序y的时候可以使的标号大的排在前面这样就可以防止y和它一样的更新它了...
分类:其他好文   时间:2014-10-10 02:52:43    阅读次数:235
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!