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