归并排序是一种效率较高的排序方法。本文将先介绍归并排序,然后再简单盘点一下其与快排的一些区别。 ...
分类:
编程语言 时间:
2020-07-27 09:30:05
阅读次数:
74
最近发现各位大佬们(\(MikeDuke\), \(lhm\)_)都早早会了点分治了,我也打算学一下。 讲解博客链接: 点分治略解 博客里面讲得很详细,但我还是觉得$MikeDuke$大佬讲得更易懂一些。 P3806 【模板】点分治1 给定一棵有n个点的树(有边权) 询问树上距离为k的点对是否存在。 ...
分类:
其他好文 时间:
2020-07-22 23:30:52
阅读次数:
63
先看B,发现是李超树套线段树简单题。 然而空间比较卡,不敢写。 动态半平面交不会。 再看A,首先以为要字典序排序,但是后来发现是假的。 想了一会发现建出字典树就是简单题,然而由于怕爆空间不敢写。 看C,想到把k提到根,但是之后一点思路都没有。 回头看B发现只需要cdq分治+线段树分治就能把空间去掉一 ...
分类:
其他好文 时间:
2020-07-22 15:48:58
阅读次数:
49
比较神仙的推导. 求 $\sum_{n=0}^{ \infty }f(n)r^n$,其中 $f(x)$ 是一个 $m$ 次多项式,$0\leqslant r \leqslant 1$ 显然可以 $f(x)$ 每一个系数的贡献,那么就转化为: $\sum_{j=0}^{m} a_{j} \sum_{n ...
分类:
其他好文 时间:
2020-07-21 21:28:56
阅读次数:
65
扩展KMP 舞蹈链 卢卡斯定理/扩展卢卡斯 莫比乌斯反演 线段树分裂 LCT manacher 回文自动机 点分治 ...
分类:
编程语言 时间:
2020-07-20 23:01:57
阅读次数:
117
归并排序 归并排序(Merge Sort)是建立在归并操作上的一种有效,稳定的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。 ...
分类:
编程语言 时间:
2020-07-19 23:46:53
阅读次数:
77
归并排序 归并排序介绍**:归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer)策略(分治法将问题分(divide)成一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶段得到的各答案"修补"在一起,即分而治之)。* ...
分类:
编程语言 时间:
2020-07-19 17:52:55
阅读次数:
58
假设有16枚硬币,其中一枚是假币,并且已知假币的重量要比真的硬币的重量要轻一点。 那么怎么样才能找出来这个假币呢? 这里用到的就是分治的思想 (1)先将这些硬币分成数量相同的两堆,称重,轻的就是有假币的 (2)将有假币的一堆再拆分成数量相同的两堆 (3)重复上面的步骤 (4)最终会剩下两枚,其中一枚 ...
分类:
编程语言 时间:
2020-07-19 17:44:02
阅读次数:
60
算法: 快速排序是一种分治的排序算法。它将一个数组分成两个子数组,将两部分独立地排序。快速排序和归并排序是互补的;归并排序将数组分成两个子数组分别排序,并将有序的子数组归并以将整个数组排序;而快速排序将数组排序的方式则是当两个子数组都有序时整个数组也就自然有序了。在第一种情况中,递归调用发生在处理整 ...
分类:
编程语言 时间:
2020-07-17 19:48:16
阅读次数:
60
采用分治思想 #include<bits/stdc++.h> using namespace std; typedef long long ll; typedef unsigned long long ull; double a,b,c,d; double f(double x) { return ...
分类:
其他好文 时间:
2020-07-17 13:39:43
阅读次数:
71