题目大意:初始给定平面上的一个点集,提供两种操作:
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
题目大意:(同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
题目大意:给出一颗无根树和每条边的权值,求出树上两个点之间距离
思路:树的点分治。利用递归和求树的重心来解决这类问题。因为满足题意的点对一共只有两种:
1.在以该节点的子树中且不经过该节点。
2.路径经过该节点。
对于第一种点,我们递归处理;第二种点,我们可以将所有子树的节点到这个子树的根节点的距离处理出来,然后排序处理出满足要求的点对的个数。
按照正常的树的结构来分割子树,这样...
分类:
其他好文 时间:
2014-10-11 18:14:35
阅读次数:
201
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
题目大意:给定一棵树,求树上距离不超过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
题目大意:同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
题目链接:
here
题意:
和hdu4742类似。区别就是一部分三元组是直接给出的。还有一部分是用他给的那个函数生成的。还有就是这里的大于是严格的大于a>b必须ax>bx,ay>by,az>bz。
思路:
思路也和hdu4742here类似。只是有几个比较棘手的问题。现在变成严格大于了。对于y还是很好办的。我们在排序y的时候可以使的标号大的排在前面这样就可以防止y和它一样的更新它了...
分类:
其他好文 时间:
2014-10-10 02:52:43
阅读次数:
235