码迷,mamicode.com
首页 >  
搜索关键字:分治    ( 3950个结果
Codeforces 97B Superset 平面分治
题目链接:点击打开链接 题意: 给定一个点集 添加一些点后再把这个点集输出来。 添加完点后使得对于点集内任意2个点都满足下面2条中至少一条 1、在同一水平线上或在同一垂直线上 2、所围成的矩阵里有其他点。 思路: 平面分治 #pragma comment(linker, "/STACK:1024000000,1024000000") #include #include...
分类:其他好文   时间:2014-10-03 01:59:23    阅读次数:558
线段树之入门篇
线段树(interval tree) 是把区间逐次二分得到的一树状结构,它反映了包括归并排序在内的很多分治算法的问题求解方式。   上图是一棵典型的线段树,它对区间[1,10]进行分割,直到单个点。这棵树的特点 是: 1. 每一层都是区间[a, b]的一个划分,记 L = b - a 2. 一共有log2L层 3. 给定一个点p,从根到叶子p上的所有区间都包含点p,且其他区间都不包...
分类:其他好文   时间:2014-10-02 09:14:52    阅读次数:196
Maximum Product Subarray
这题看起来和max subarray差不多,只是加法变乘法,尝试过用分治法,发现划分情况的时候特别麻烦。于是分析下这题本身的特点:1、对0较敏感,一旦有0,乘积就不变了,所以需要在遇到0 的时候将数组拆分2、如果没有0, 一旦相乘,绝对值肯定会变大,所以仅考虑正负号的问题就够了。若整个数组相乘是一个...
分类:其他好文   时间:2014-09-30 17:23:59    阅读次数:206
HDU 1007 最近点对
分治法求最近点对 递归将点不断分成小组,计算最短距离。此时的最短距离仅仅是两点都属两块的某一块(这里的分割点是mid点)。 还需要考虑两点分属两块的情况。这时对于选点则把范围缩小到了以mid为中心。再将距离mid点x轴2*mindist范围点考虑在内。在这些点中,再取mid点,留下那些 y的距离不大于middist 的点进行距离计算。 PS:刚开始min函数写错了,写成了max,一...
分类:其他好文   时间:2014-09-30 11:50:35    阅读次数:142
快速排序(递归与分治的思想)
快排具有递归和分治的思想,实现步骤如下。 第一步:对数组A中的第一个元素x执行操作,使得数组变成新的数组B,B中C段表示小于x的元素,D段表示大于x的元素 第二步:把C段,D段,当成2个独立的数组,然后对这2个数组执行类似于第一步中A的操作 第三步:这样B和D数组又同样被分成了三部分,依次类推反复执行相同的操作。 代码: #include using namespace std;...
分类:其他好文   时间:2014-09-30 08:22:22    阅读次数:175
排序 归并排序 分配排序
归并排序基本思想:将两个或两个以上的有序子序列“归并”为一个有序子序列。在内部排序中,通常采用的是2-路归并排序,即将两个位置相邻的有序子序列“归并”为一个有序序列。类似于快排,其使用的也是分治的策略。二路归并排序基本思想:将有n个记录的原始序列看做n个有序子..
分类:其他好文   时间:2014-09-30 04:38:12    阅读次数:191
UVa 10170 - The Hotel with Infinite Rooms
题目:求从s开始的递增序列(每次加1),求出他们加和不小于D的那个最后的加数。 分析:数学题,分治。s + s+1 + ... + n = n*(n+1)/2 - s*(s-1)/2 = (n+s)*(n-s+1)/2。              直接二分答案即可(二分范围0~10^8)。 说明:(⊙_⊙)。 #include #include using namespace st...
分类:其他好文   时间:2014-09-29 20:56:21    阅读次数:275
BZOJ 1176 [Balkan2007]Mokia CDQ分治
题目大意: 维护一个W*W的矩阵,初始值均为S.每次操作可以增加某格子的权值,或询问某子矩阵的总权值.修改操作数M POJ1195的加强版 没记错的话上午这题还没有中文题目描述的说0.0 好迅速 首先这题看到W就知道二维树状数组挂了 看到M就发现离散化了也搞不了 0.0 这题似乎是CDQ分治被发现之后第二个解决的题目。。。不过只有会员才知道的世界,今天反应过来刷刷。。。 修改和询问...
分类:其他好文   时间:2014-09-29 20:44:31    阅读次数:169
算法手记(7)快速排序
终于到了经典的快排了,作为20世纪科学和工程领域十大算法之一,自60年代发明以来,一直吸引着一批批工程师和科学家对其改进,今天我们就分析快排算法以及它的几种改进方案。快速排序概述:快速排序算法也是基于分治思想的方案,与归并排序不同的是,它是原地排序,同时可以将长度为N的数组排序所需的时间和NlogN...
分类:其他好文   时间:2014-09-29 13:14:30    阅读次数:181
归并排序
算法是采用分治法(Divide and Conquer)的一个非常典型的应用。首先考虑下如何将将二个有序数列合并。这个非常简单,只要从比较二个数列的第一个数,谁小就先取谁,取了后就在对应数列中删除这个数。然后再进行比较,如果有数列为空,那直接将另一个数列的数据依次取出即可。 1 //将有序数组a[]...
分类:其他好文   时间:2014-09-28 14:31:12    阅读次数:204
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!