2016年10月20日

gcd和拓展gcd算法

摘要: gcd算法是用来求两个数最大公约数的算法,他是依靠辗转相除(中国好像叫辗转相减)法来求两个数的最大公约数,别的地方也有很多介绍不做过多赘述,主要提供代码供自己参考。 对于拓展gcd,是对方程ax+by=c求解; 就是a mod b=c这个方程求解; 具体看代码,不做过多赘述因为别人已经讲的很详细了, 阅读全文

posted @ 2016-10-20 16:39 fuyun_boy 阅读(321) 评论(0) 推荐(1)

2016年10月18日

关于经典题目火柴棒等式

摘要: 这道题很难,但是我把它写出来了,虽然代码可读性不大,但是我还是要交上来。 题目地址:https://www.luogu.org/problem/show?pid=1149 阅读全文

posted @ 2016-10-18 12:57 fuyun_boy 阅读(206) 评论(2) 推荐(0)

2016年10月6日

线段树

摘要: 直接上题吧,半写半抄的题解 新大陆signed; 洛谷3372 https://www.luogu.org/problem/show?pid=3372 如题,已知一个数列,你需要进行下面两种操作: 1.将某区间每一个数加上x 2.求出某区间每一个数的和 输入格式: 第一行包含两个整数N、M,分别表示 阅读全文

posted @ 2016-10-06 23:59 fuyun_boy 阅读(176) 评论(1) 推荐(0)

树状数组的另一种用法(离散化存数)

摘要: 这个操作就是对每一个数加完之后add( x , k ),再将这个数减回去add(x+1 , k)的一个操作,执行完这个操作之后,树状数组里存的就不再是一段的和了而是每个数的离散。 这样对于你要对一个区间(x,y)添加一个数k的话,只需要add(x , k)然后对y后边的数剪去k。add(y+1 , 阅读全文

posted @ 2016-10-06 18:37 fuyun_boy 阅读(188) 评论(0) 推荐(0)

2016年10月5日

优先队列(stl)

摘要: 优先队列是堆排的一种优化,我学习的是使用stl库的堆排。 基本操作有: 1.push将一个元素入队。 2.pop将一个元素出队。 3.top返还值为队头元素。 4.empty判断队列是否为空,为空返回真。 5.size返还队列里元素总数。 堆的定义方法有很多,我介绍一下我的定义方法 小根堆:prio 阅读全文

posted @ 2016-10-05 18:18 fuyun_boy 阅读(156) 评论(0) 推荐(0)

LCA算法倍增算法(洛谷3379模板题)

摘要: 倍增(爬树)算法,刚刚学习的算法。对每一个点的父节点,就记录他的2k的父亲。 题目为http://www.luogu.org/problem/show?pid=3379 第一步先记录每一个节点的深度用一个深搜,顺便对每个节点的20赋初值为自己的上一个节点。 第二步通过第一步的初始化对每个节点的2k次 阅读全文

posted @ 2016-10-05 11:33 fuyun_boy 阅读(323) 评论(0) 推荐(0)

2016年10月3日

并查集模板

摘要: 第一行包含两个整数N、M,表示共有N个元素和M个操作。 接下来M行,每行包含三个整数Zi、Xi、Yi 当Zi=1时,将Xi与Yi所在的集合合并 当Zi=2时,输出Xi与Yi是否在同一集合内,是的话输出Y;否则话输出N 洛谷3367:http://www.luogu.org/problem/show? 阅读全文

posted @ 2016-10-03 14:41 fuyun_boy 阅读(197) 评论(0) 推荐(0)

克鲁斯卡尔算法求最小生成树

摘要: 只是写一个模板,具体讲解就不讲了,是一个并查集的应用+贪心的思想。 路径压缩还是很有用处的,没有压缩的时候tml了三个,压缩之后明变快了不少,虽然还是那么慢 先说一下我的压缩方法就当学习一下并查集: 非递归的路径压缩,先找到祖先结点,然后从头到尾的更新路径的每一个点,让他们直接指向祖先结点 还有一种 阅读全文

posted @ 2016-10-03 12:01 fuyun_boy 阅读(3512) 评论(0) 推荐(0)

2016年9月30日

prim

摘要: prim算法是计算最小生成树的一种算法。 运算方法是任取一个点,以这个点为集合开始,然后对所有点与这个点的距离进行更新,找出离这个集合最近的点,然后把这个点放进这个集合(所以每一次运算的时候都要判断一下这个点是否在这个集合里,所有要用到一个vister数组),然后再以这个集合继续寻找离这个集合最近的 阅读全文

posted @ 2016-09-30 15:31 fuyun_boy 阅读(2154) 评论(0) 推荐(0)

SPFA+寻路(行路难,洛谷2832)

摘要: SPFA加寻路的操作只需要多添加一个数组记录路径即可。 我们把这个数组叫做G数组,G数组里的数要求满足SPFA的判断条件时才会执行。也就是SPFA路径。 通过这个函数查询每个点的钱一个路径,因为1号点没有前一个路径,所以好手动输出。 具体操作以洛谷2832为例:http://www.luogu.or 阅读全文

posted @ 2016-09-30 09:56 fuyun_boy 阅读(494) 评论(0) 推荐(0)

导航