摘要: 运用了分治的思想,将一个数组分成几乎相等的两份,分别将两段中第一个最小的数拿出来放在一个临时数组中,直到全部取完。因为是递归的,所以每一段的数列都是排序好的。 void merge_sort(ll *A,ll *B,int x,int y) { if(y-x<=1)return; int m=x+( 阅读全文
posted @ 2020-07-17 16:14 Star_Cried 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 学习自该博客 (dalao讲得真好,我只为了记忆写重点) Splay是一种数据结构,用于在线调整二叉排序树的操作,用于让树平衡(空树或任意节点的左右两个子树的深度差的绝对值不超过1)转换根节点或者其他操作。 二叉排序树,左子树任意一个点的值小于根节点,右子树任意一个点大于根节点的树。很显然,如果你想 阅读全文
posted @ 2020-07-17 11:14 Star_Cried 阅读(162) 评论(0) 推荐(0) 编辑
摘要: Tarjan,我相信大多数人是这么写的: void tarjan(int x) { dfn[x]=low[x]=++cnt; st.push(x),vis[x]=1; for(int i=head[x];i;i=nxt[i]) { int u=to[i]; if(!dfn[u]) { tarjan( 阅读全文
posted @ 2020-07-17 09:08 Star_Cried 阅读(530) 评论(4) 推荐(0) 编辑