码迷,mamicode.com
首页 >  
搜索关键字:分治    ( 3950个结果
[NOI2007 Day1] 货币兑换 Cash
vijos P1508 / BZOJ 1492膜拜了这么久的cdq分治,终于有机会亲自来写了。虽然这个思想很好理解,先做前一半,计算前一半对后一半的影响,再做后一半。但是由于我这个傻Ⅹ,以前既没有做过斜率优化,也没有做过维护凸包之类,花了好久时间捣鼓具体做法,而且理解思路后写起来还是有点难度的。主要...
分类:其他好文   时间:2014-07-02 20:26:00    阅读次数:201
UVa 10245 - The Closest Pair Problem
题目:最近点对(大数据)。 分析:分治法。首先,将所有点按很坐标排序;然后,利用分治求解。             1.将问题转化为两个相同大小的子区间分别求解;             2.中位点为中心,当前最小距离为半径的区间直接枚举求解;             3.求出上两中情况的最小值返回。 说明:这么经典的题目,今天第一次做。 #include #include #in...
分类:其他好文   时间:2014-07-02 09:41:14    阅读次数:202
ACM:递归与分治,最大连续和,O(n3), O(n2), O(nlogn), O(n) 算法。
题目,求一个连续的数组,最大连续和。 (一)O(n3)算法: 利用穷举法的思想,这种方法的效率最差。 代码如下: #include #include #include #include using namespace std; const int MAXN = 1000; int A[MAXN], n; int maxsum(int *A, int n) { int beat...
分类:其他好文   时间:2014-07-02 09:15:50    阅读次数:349
算法纲要
基本枚举、贪心、递归、分治、递推、模拟STL(pair、vector、set、map、queue、string、algorithm)构造、位运算、常数优化数据结构队列、堆、栈、链表排序(插入、冒泡、快速、归并、堆、桶、基数)二分查找、散列表并查集、哈夫曼树排序二叉树、左偏树、平衡树(Splay/Tr...
分类:其他好文   时间:2014-07-01 19:09:02    阅读次数:193
算法整理(二)---快速排序的两种实现方式:双边扫描和单边扫描
首先简单谈下快速排序的特点,时间复杂度O(nLog n),最差时间复杂度O(n^2).是一种不稳定的排序方法。基本思想是分治法,这位大大的http://blog.csdn.net/morewindows/article/details/6684558 讲的非常清楚了,分治法+挖坑法,我就不多说了。就是以某个数为参照,使得左边的都小于他,右边的数都大于他。然后对他的左右两个区间采取同样的方法进行递归...
分类:其他好文   时间:2014-07-01 11:07:47    阅读次数:254
分治策略结合递归思想求最大子序列和
对于 《数据结构与算法分析——C语言描述》 一书第 20 页所描述的算法 3,相信会有很多人表示不怎么理解,下面我由具体问题的求解过程出发,谈谈我自己的理解: 首先,什么是分治法呢?所谓 分治法,就是 将一个问题的求解过程分解为两个大小相等的子问题进行求解,如果分解后的子问题本身也可以分解的话,则将这个分解的过程进行下去,直至最后得到的子问题不能再分解为止,最后将子问题的解逐步合并并可能...
分类:其他好文   时间:2014-07-01 11:03:52    阅读次数:169
排序(5)---------快速排序(C语言实现)
快速排序使用分治法(Divide and conquer)策略来把一个串行(list)分为两个子串行(sub-lists)。 步骤为: 1,从数列中挑出一个元素,称为 "基准", 2,重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。在这个分区退出之后,该基准就处于数列的中间位置。这个称为分区操作。 3,递归地把小于基准值元素的子数列和大于基准值元素的子数列排序。 4,递归的最底部情形,是数列的大小是零或一,也就是永远都已经被排序好了。虽然一直递...
分类:编程语言   时间:2014-06-30 08:19:12    阅读次数:203
POJ_2299 Ultra-QuickSort【归并排序】
题目链接:http://poj.org/problem?id=2299 题目大意:求出排序过程中的最小交换次数 利用归并排序的分治算法解决此题。 代码: #include #include #include #define N 500001 using namespace std; int a[N]; int temp[N]; long long ans; void merge(in...
分类:其他好文   时间:2014-06-30 08:18:11    阅读次数:230
分类中数据不平衡问题的解决经验
问题:研究表明,在某些应用下,1∶35的比例就会使某些分类方法无效,甚至1∶10的比例也会使某些分类方法无效。 (1)少数类所包含的信息就会很有限,从而难以确定少数类数据的分布,即在其内部难以发现规律,进而造成少数类的识别率低 (2)数据碎片。很多分类算法采用分治法,样本空间的逐渐划分会导致数据碎片问题,这样只能在各个独立的子空间中寻找数据的规律,对于少数类来说每个子空间中包含了很少的数据信息...
分类:其他好文   时间:2014-06-29 23:01:55    阅读次数:251
归并排序:二路归并
归并排序(Merge Sort)是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个有序的子序列,再把有序的子序列合并为整体有序序列。 归并排序的具体做法: 把原序列不断地递归等分,直至每等份只有一个元素,此时每等份都是有序的。 相邻等份合并,不断合并,直至合并完全。 二路归并 归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。归并排序最常用的是二路归并,即把两个小的有序的序列和并成一个大的有序序列:合二为一...
分类:其他好文   时间:2014-06-27 10:16:41    阅读次数:315
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!