" Portal bzoj2741 " Solution 突然沉迷分块不能自拔 考虑用分块+可持久化trie来解决这个问题 对于每一块的块头$L$,预处理$[L,i]$区间内的所有子区间的最大异或和,这个可以做到$O(n\sqrt nlogn)$,实现上的话就是。。将一段区间$[l,r]$的异或和写 ...
分类:
其他好文 时间:
2018-11-30 13:57:43
阅读次数:
171
题目传送门: "https://agc014.contest.atcoder.jp/tasks/agc014_e" 题目翻译 有一棵有$N$个点的树,初始时每条边都是蓝色的,每次你可以选择一条由蓝色边构成的简单路径,让这条路径的两个端点间连上一条红边,然后断开这条路径上的某条蓝边。这样做$N 1$次 ...
分类:
其他好文 时间:
2018-11-28 11:55:21
阅读次数:
161
st表是解决区间RMQ(区间最值问题)的一类算法,时间复杂度为O(nlogn)的预处理和O(1)的查询,其主要运用了类似倍增的思想... 总体来说,st表的用处还是挺大的,代码也比较短,容易记... st表 若现在给定一个长度为n的序列A,每次给定两个数l,r,求出A[l]~A[r]中的最大值... ...
分类:
编程语言 时间:
2018-11-23 23:52:58
阅读次数:
653
半平面交第一题 ! 题意是给出一个多边形,问他是否存在内核,即“可以看到任何一个地方的区域”。 内核即半平面交,下面是离线求半平面交的$nlogn$算法 ~~~cpp include include include include include using namespace std; const ...
分类:
其他好文 时间:
2018-11-23 23:26:46
阅读次数:
190
【题目】: 给定数组arr,返回arr的最长递增子序列 举例: arr=[2, 1, 5, 3, 6, 4, 8, 9, 7],返回的最长递增子序列为[1, 3, 4, 8, 9] 【要求】: 如果arr长度为N,请实现时间复杂度为O(NlogN)的方法 ...
分类:
其他好文 时间:
2018-11-23 14:26:34
阅读次数:
170
分治$fft$ $f[n]=\sum\limits_{i=1}^{n}f[n i]\times g[i]$ 使用$CDQ$分治的思想,用$[l,mid]$的$f$去更新$[mid+1,r]$的$f$。 时间复杂度$O(nlogn^2)$ 任意模数$fft$ $\sum\limits_{j=0}^{i ...
分类:
其他好文 时间:
2018-11-22 02:46:06
阅读次数:
205
【题目】: 给定一个无序的整型数组arr,找到其中最小的k个数 【要求】: 如果数组arr的长度为N,排序之后自然可以得到最小的k个数,此时时间复杂度与排序的时间复杂度相同,均为O(NlogN)。本题要求读者实现时间复杂度为O(Nlogk)和O(N)的方法 ...
分类:
编程语言 时间:
2018-11-19 13:28:57
阅读次数:
124
一、如何选择合适的排序算法?1.排序算法一览表 时间复杂度 是稳定排序? 是原地排序?冒泡排序 O(n^2) 是 是插入排序 O(n^2) 是 是选择排序 O(n^2) 否 是快速排序 O(nlogn) 否 是 归并排序 O(nlogn) 是 否桶排序 O(n) 是 否计数排序 O(n+k),k是数 ...
分类:
编程语言 时间:
2018-11-18 11:37:06
阅读次数:
365
堆排序 堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它也是不稳定排序。首先简单了解下堆结构。 堆 堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆;或者每个结点的值都小于或等于其左右孩子 ...
分类:
编程语言 时间:
2018-11-17 19:05:39
阅读次数:
140
今天开启leetcode 入门第一题 题意很简单,就是一个数组中求取两数之和等于目标数的一对儿下标 1.暴力 n^2 两个for循环遍历 用时0.1s 开外 代码就不用写了 2.二分 nlogn 我们可以遍历选择每一个元素 ,然后二分剩余(target - ai) (一)从全序列二分剩余 这就需要考 ...
分类:
其他好文 时间:
2018-11-17 14:37:02
阅读次数:
193