摘要:
基数排序,简单点说就是从低位按照高位排序,所以浅显的判断,排序的时间消耗大抵是O(n)的。 C++ 板子 void radixsort(int n) { int mx=*max_element(a,a+n); int range=0,base=1; while(mx) mx/=10,++range; 阅读全文
摘要:
Dijkstra是求单源最短路的一种算法,它不能够处理含有负权边的图。本质是递推,依次求出距离起点最近的点。 C++ 板子 #include<bits/stdc++.h> #define ll long long /* 题目链接:https://www.luogu.com.cn/problem/P3 阅读全文
摘要:
Bellman-Ford能够处理带负权图的单源最短路问题。(带负劝环的图,无法求出单源最短路) Bellman-Ford的主要思想如下: 给定一张有向图,若对于图中的某一条边(x,y,z),有$dist[y]<=dist[x]+z$成立,则称该边满足三角不等式。若所有边都满足三角不等式,则dis 阅读全文
摘要:
什么是树状数组? 树状数组就是通过数组来模拟一种树形结构,这种树形结构能够维护区间信息。同样类似的数据结构还有线段树,线段树与树状数组相比,它的结点更多,也就是说线段树的常数更大。 线段树是通过把区间二分来维护区间的信息,而树状数组是通过lowbit来维护区间的信息。 以树状数组维护区间 阅读全文
摘要:
常见的排序算法有许多,主要分为$O(n^2)$和$O(nlog(n))$ 冒泡 void pop_sort(){ memcpy(b,a,sizeof(a)); cout<<"冒泡排序: "<<endl; for(int i=0;i<n-1;i++) for(int j=0;j+1<n-i;j++) 阅读全文