分类: 算法

25 篇文章

浅谈图论
链式前向星 众所周知,存图的方式有多种,例如邻接矩阵,邻接表,这两种一般初学者都在用,并且十分的便于理解和使用。但是当图的边数过大或者说点数较大时以上两种存图方式不是十分的合适。 所以说,这时就要用到我们的链式前向星了。本质上来说是用链表实现的临接表,先放代码。 int e[N],w[…
浅谈二分
概述: 以前刚开始学二分的时候,只知道二分就是一半一半的分下去,对于边界问题一直都不是很懂,之前为了避免这问题想着用一个对拍程序来查看自己写的是否是对的,但是想了想还是要想一个正解。 注意点: 二分时主要是防止l和r的值都不发生改变,使得程序进入了死循环。 接下来是本人的一点理解。 本人理解: 整数…
线段树模板
概述: 线段树是算法竞赛中常用的数据结构(虽然考场中很少用,毕竟调起来麻烦,区间求和用树状树组还是更加方便代码也短)。 线段树可以在O(logN)的时间复杂度内实现单点修改、区间修改、区间查询(区间求和,求区间最大值,求区间最小值)等操作。简略的描述一下算法思路,线段树是一个二叉树,树的每一个节点存…
猴子选大王
题目 猴群一共有 n 只猴子,现在它们要选出大王,具体方法是:所有猴子按位置 1- n 围坐成一圈,从第 1 个位置开始按顺序 1-m 报数,“1、2、3……m - 1、m”。报到 m 的猴子就要离开此圈,它下一个位置重新 1-m 报数。这样依次下来,直到只剩下最后一只猴子,则该猴子为大王。 你作为…
超硬核进制转换
$ $众所周知,将二进制转化为十进制数十分的方便,而用十进制转换为二进制时,有一种方法,十分的方便.只需要将原数不断除以二的余数写下来后倒着遍历一遍就是二进制了。 例如 : $   $$7/2=3…1 $ $   $$3/2=1…1 $ $   $$1/2=0…1 $ $   $$所以7的二进制表示…