![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
模板
zero_from
这个作者很懒,什么都没留下…
展开
-
模板----排序
(1)归并排序时间复杂度O{nlogn),和快排一样。归排是利用倍增(然而只是硬往倍增上靠)的思想,将分别有序的两个区间合并成一整个有序区间的算法,依据这两点可将所求区间不断二分,分别排序,再进行合并,从而达到整个区间排序的目的。因为每次直接处理的区间长度为2(当待处理区间仅有两个数时直接进行交换),所以排序过程总复杂度为logn,归并过程复杂度为n,每次排序后归并一次,于是得到总时间复杂原创 2016-08-16 09:45:29 · 266 阅读 · 0 评论 -
图论模板-最短路
(1)floyd*时间复杂度O(n^3);*最简单最好记最好打的最短路算法;*可计算任意两点间的最短路;*适合带负权的情况;int dis[10010][10010];int main(){ int n,m,x,y,len; scanf("%d%d",&n,&m); memset(dis,0xffffffff,sizeof(dis)); for (int i=1;原创 2016-08-14 16:24:46 · 274 阅读 · 0 评论 -
图论模板-最小生成树
(1)prim*时间复杂度O(n^2);*最小生成树;*稠密图适用;*与dijskra仅有一行有区别;int d[10010],dis[10010][10010];bool vis[10010];int x,y,len,n,m;void prim(int s){ memset(vis,0,sizeof(vis)); for (int i=1;i<=n;i++)原创 2016-08-14 16:39:38 · 206 阅读 · 0 评论 -
模板-----------线段树
支持区间修改及查询,适用于多次修改、多次询问;倍增RMQ算法仅支持区间查询,不支持区间修改。练手题:1.洛谷33522.codevs1080、1081、1082#include#include#include#include#include#define ll long longusing namespace std;ll n,m,k,x,y,ans;ll a[10原创 2016-11-07 19:36:21 · 203 阅读 · 0 评论 -
模板--------LCA
倍增法求LCA,在线算法:#include#include#include#include#includeusing namespace std;struct mc{ int x,y,ne;}e[1000010];int num=0,v[500010];void put(int x,int y){ num++; e[num].x=x; e[num].y=y;原创 2016-11-10 19:22:00 · 189 阅读 · 0 评论