小和问题在一个数组中, 每一个数左边比当前数小的数累加起来, 叫做这个数组的小和。 求一个数组的小和。例子:[1,3,4,2,5]1左边比1小的数, 没有;3左边比3小的数, 1;4左边比4小的数, 1、 3;2左边比2小的数, 1;5左边比5小的数, 1、 3、 4、 2;所以小和为1+1+3+1 ...
                            
                            
                                分类:
编程语言   时间:
2019-11-13 16:10:01   
                                阅读次数:
81
                             
                         
                    
                        
                            
                            
                                    O(logn) long long内都可以 O(n) 10^7 O(nlogn) 10^5 ~ 5 10^5 O(n^2) 1000 ~ 5000 O(n^3) 200 ~ 500 O(2^n) 20 ~ 24 O(n!) 12 ...
                            
                            
                                分类:
其他好文   时间:
2019-11-10 22:35:39   
                                阅读次数:
108
                             
                         
                    
                        
                            
                            
                                什么是算法?算法其实就是对一个问题或一类问题的解决过程的描述。大家对高斯不陌生吧?以首项加末项乘以项数除以2用来计算“1+2+3+4+5+···+(n-1)+n”的结果。我们把它叫做高斯算法,因为可以通过公式来解决复杂的问题,大大缩短了解题时间。当然算法的魅力还不止如此,我们接着往下看:这两段代码都可以称之为算法,因为分别可以解决两个数相加和从1加到n的问题。算法并不一定要非常复杂,小到一行代码,
                            
                            
                                分类:
编程语言   时间:
2019-11-10 21:10:00   
                                阅读次数:
75
                             
                         
                    
                        
                            
                            
                                    堆排序 2019-11-10 11:45:11 by冲冲 1、概念 堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它也是不稳定排序。首先简单了解下堆结构。 堆 堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子 ...
                            
                            
                                分类:
编程语言   时间:
2019-11-10 17:42:38   
                                阅读次数:
82
                             
                         
                    
                        
                            
                            
                                    给链表排序。题意是给一个链表,请对其排序,并满足时间O(nlogn),空间O(1)的要求。 按照题目要求,因为时间是nlogn,所以自然而然想到偏向二分的做法,但是我是真做不到空间O(1),我只会用递归的方法,空间是O(n)。思路是找到链表的中点,然后用merge sort的思路递归再把链表一点点拼 ...
                            
                            
                                分类:
其他好文   时间:
2019-11-10 10:22:46   
                                阅读次数:
100
                             
                         
                    
                        
                            
                            
                                考虑每一个位置最多开6次左右就会变成1,然后操作就没有意义了,因此对线段树维护区间和和一个标记,表示是否全部都是1,然后对于修改,如果区间标记不是1就暴力下去,是1就不用操作,复杂度为$o(6nlogn)$ 1 #include<bits/stdc++.h> 2 using namespace st ...
                            
                            
                                分类:
其他好文   时间:
2019-11-10 09:20:13   
                                阅读次数:
75
                             
                         
                    
                        
                            
                            
                                $1.$数字三角形 每次可以往右下或者左下走一格,求路径的最大权值. $d(i,j)=max(d(i+1,j),d(i+1,j+1))+a(i,j).$边界是$d(n+1,j)=0$,从下往上推(因为要保证$i+1$行在第$i$行之前更新) $3.$硬币问题 $$f(i)=min(inf,f[i V ...
                            
                            
                                分类:
其他好文   时间:
2019-11-09 23:46:26   
                                阅读次数:
108
                             
                         
                    
                        
                            
                            
                                    题目大意 给你一个树,每个节点上有有一个部落,以及部落的人数,要你求出每个节点的子树里面人数最多的部落是哪一个(人数相同部落编号最小的)。 思路 ~~全网第一篇分治题解~~ 考虑树的dfs序,然后分治处理,每层只处理跨过mid的区间,然后就完了。 时间复杂度$O(nlogn)$,但常数比树上启发式合 ...
                            
                            
                                分类:
其他好文   时间:
2019-11-06 22:51:24   
                                阅读次数:
170
                             
                         
                    
                        
                            
                            
                                    接力dalao完成 前文链接:(CSP-S RP++!) 对前文的一些补充: 首先清楚最长不下降子序列是一个递增但是允许不同位元素相等的序列。而最长上升子序列则是一个单调递增的序列。 而两者都是子序列,所以子序列的长度一定小于等于原序列。且子序列在原序列的位置不一定连续。 这个O(nlogn)的算法 ...
                            
                            
                                分类:
其他好文   时间:
2019-11-03 21:54:11   
                                阅读次数:
83
                             
                         
                    
                        
                            
                            
                                    [TOC] 一、ST算法 ST算法(Sparse Table Algorithm)是用于解决RMQ问题(区间最值问题,即Range Maximum/Minimum Question)的一种著名算法。 ST算法能在复杂度为$O(NlogN)$的预处理后,以$O(1)$的复杂度在线处理序列区间内的最大值 ...
                            
                            
                                分类:
编程语言   时间:
2019-11-03 12:41:51   
                                阅读次数:
91