摘要: 快速幂 快速幂是我们经常用到的一种算法,快速幂顾名思义就是快速的幂运算。我们在很多题目中都会遇到幂运算,但是在指数很大的时候,我们如果用for或者是pow就会超时,这时候就用到了快速幂。 快速幂的原理就是,当求b^p的时候,如果p是一个奇数,那么我们就可以把它拆成(b^2)^(p/2)*b,因此每次 阅读全文
posted @ 2018-08-16 20:33 Glacier-elk 阅读(768) 评论(0) 推荐(0) 编辑
摘要: 对拍 相信大家以前一定听说过对拍打法,对拍可以快速的比较两个程序的差异,在比赛或考试中应用非常广泛。我们有的时候不知道写的算法对不对的话,就可以用对拍了(对拍打发好!!!)。我们先打一个暴力,然后再写一个数据生成器,在写一个一下的对拍程序就可以对拍啦!! 需要注意的是,以上程序中的数据生成器、程序1 阅读全文
posted @ 2018-08-09 16:49 Glacier-elk 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 最短路径算法简介 最短路径算法是在图中求两点(或多点)之间的最短路径,我们最常见的最短路径算法有四种:Bellman-ford、Dijkstra、SPFA、Floyd。 Bellman-ford算法可以用于有负边权的图,如果途图中有负环,算法也可以检验出来,时间复杂度为O(VE)。 Dijkstra 阅读全文
posted @ 2018-08-08 11:43 Glacier-elk 阅读(13757) 评论(0) 推荐(4) 编辑
摘要: 链表介绍 链表是由节点构成的一条链,每一个节点由两部分组成,一部分存储此节点的信息(数据域),另一部分存储链表后继元素的存储位置(指针域),这两部分合在一起就是一个节点。链表的节点通常用结构体来表示,一个表示数据域,一个表示指针域。 链表的定义和普通结构体变量的定义是一样的,但是链表是指针变量。 单 阅读全文
posted @ 2018-07-10 17:38 Glacier-elk 阅读(286) 评论(1) 推荐(0) 编辑
摘要: 模板(一) 洛谷原题链接 AC代码 模板(二) 洛谷原题链接 AC代码 阅读全文
posted @ 2018-07-09 16:41 Glacier-elk 阅读(338) 评论(0) 推荐(0) 编辑
摘要: ◎引例◎ 在详细解释之前,我们先来看一下洛谷上的两个线段树模板题目(洛谷P3372、P3373)。 从这几到题目可以看出,线段树的基本操作大致有三种:①给区间中的每一个元素加一个值 ②给区间中的每一个元素乘一个值 ③求出一个区间的每个元素和,下面我们先对线段树做一个基本的了解。 ◎线段树的定义和结构 阅读全文
posted @ 2018-06-29 08:59 Glacier-elk 阅读(212) 评论(0) 推荐(0) 编辑
摘要: #include #include using namespace std; int n,m,x,y,z; int f[150000]; //f[i]表示i的祖先 inline int find(int x){ //inline是把这个函数插入到调用的地方,速度会快一点 if(f[x]==x) return f[x]; //如果找到了根就返回 return f[x]=fin... 阅读全文
posted @ 2018-06-28 16:53 Glacier-elk 阅读(152) 评论(1) 推荐(1) 编辑