"题目链接" ,$O(N^2)$能过。 "题目链接" ,$O(N\log N)$能过。 $O(N^2)$做法 DP:f[i]表示,以第i个数结尾的最长子序列的集合的最大值。 ...
分类:
其他好文 时间:
2020-02-18 23:23:19
阅读次数:
117
笔者埋坑后面再来分析总结 1. 插入排序 直接插入排序:O(n^2) 二分插入排序:O(n^2) 希尔排序:O(nlog n) 2. 交换排序 冒泡排序:O(n^2) 快速排序:O(nlog2 n) java public static void SimpleSelectSort(int[] arr ...
分类:
编程语言 时间:
2020-02-17 01:18:02
阅读次数:
88
还是把 "luogu上那篇" 搬过来吧qwq 何为整体二分?~~二分她儿子~~ 先来看道题吧: 静态区间第$K$小: 给一个长度为$n$的序列$a$,$m$次询问,每次询问用一个三元组表示$(ql,qr,k)$,即$a_{ql} ... a_{qr}$中第$k$小的数是多少。(不一定要在线) ~~某 ...
分类:
其他好文 时间:
2020-02-14 13:15:17
阅读次数:
65
题意:对于一个有序数组,输出和为target的两个元素的下标。题目保证仅有唯一解。 分析: 法一:二分。枚举第一个元素,二分找另一个元素,时间复杂度O(nlogn),非最优解。 class Solution { public: vector<int> twoSum(vector<int>& numb ...
分类:
其他好文 时间:
2020-02-09 22:14:01
阅读次数:
73
摘自:https://www.cnblogs.com/RabbitHu/p/FFT.html 快速傅里叶变换(FFT)是一种能在O(nlogn)O(nlog?n)的时间内将一个多项式转换成它的点值表示的算法。 点值表示:设A(x)是一个n?1次多项式,那么把n个不同的x代入,会得到n个y。这n对(x ...
分类:
其他好文 时间:
2020-02-09 20:10:38
阅读次数:
75
笛卡尔树 好东西, 可以用于最大(小)值分治, 在$O(n)$的时间复杂度内建出一个节点为区间最大值的树, 每次分治时走小区间可以保证$O(nlog_n)$的复杂度 建树时维护极右链, 他的中序遍历即原序列 代码 克鲁斯卡尔重构树 就像跑最小生成树一般, 只是每次合并时新建一个节点t, 让它与两个连 ...
分类:
其他好文 时间:
2020-02-07 01:06:56
阅读次数:
89
点分治 [TOC] 点分治是一种基于树的重心,统计树上路径的优秀算法。将树上的路径分为经过树的重心和不经过树的重心两种,同时利用树的重心性质,使得递归深度不超过 $logn$次。总的时间复杂度为$nlog^2n$ 。 【题意】:poj_1741 求解一个树上所有边的和不超过k的共有多少个 c++ i ...
分类:
其他好文 时间:
2020-02-02 15:52:58
阅读次数:
57
归纳 1.时间复杂度为o(n^2) 冒泡排序 选择排序 插入排序 希尔排序 2.时间复杂度为o(nlogn) 快速排序 归并排序 堆排序 3.时间复杂度为线性排序 计数排序 桶排序 基数排序 ...
分类:
编程语言 时间:
2020-02-02 11:33:32
阅读次数:
66
1 #include <iostream> 2 using namespace std; 3 4 const int N = 1e6+10; 5 6 int cnt; 7 int flag[N], prim[N]; 8 //埃式筛法 O(nlog(log(n))) 9 void get_prime( ...
分类:
其他好文 时间:
2020-02-01 00:57:16
阅读次数:
100
合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。 本题我掌握了两个方法: 1. 遍历所有链表,将其 nodes 的 val 放入一个list, 然后list.sort(),然后再放入链表result O(NlogN) 2. 就是我用的方法,先写合并两个链表的函数,再分而治之的合 ...
分类:
编程语言 时间:
2020-01-30 19:06:36
阅读次数:
85