- 博客(10)
- 资源 (1)
- 收藏
- 关注
原创 从溢出视角看补码
CPU并没有减法运算器,而计算机对减法的处理需要则用到补码,从而实现将二进制数的减法转化为加法运算,以达到电路设计的目的。计算机对二进制数的加法运算有溢出的特点,那么可以考虑将减法通过加法溢出达到相同的效果。由上述过程,说明了补码相加即利用了计算机二进制数的溢出实现减法过程。举个例子,8 bit 二进制数 的计算在取值达到。正数的补码、原码和反码相同;负数的反码符号位为"的补码相加,在数值上等价于。恰好溢出,相当于结果对。
2024-07-07 22:48:09 185
原创 倍增LCA
其实这个LCA没啥优化(主要是因为博主太弱了QwQ)首先,什么是LCA? : 指在有根树中,找出某两个结点u和v最近的公共祖先。那什么是倍增呢? : 是指将在树上的u点与v点同时向上传递时,每次不是指移一位,而是移位从而大大提高时间效率。(预处理为O(nlogn),之后的挨次询问为O(logn) )。(为了时间,我二话不说地使用了链式向前星与快读QwQ)...
2019-08-16 23:14:16 96
原创 dijstra+链式前向星+优先队列优化
dijstra——强大的算法dijstra+链式前向星+优先队列优化=满分的最短路由于SPFA在最坏情况下会退化,所以我决定使用dijstra来解决最短路问题。链式前向星就是存图用的,比邻接矩阵节省空间得多(点这)而由于dijstra是基于贪心的,所以也可以用优先队列来维护写个模板吧:#include<bits/stdc++.h>#define FOR(i,...
2019-08-13 19:36:32 188
原创 SPFA+Dijkstra优化
SPFA+Dijkstra优化 其实就是用优先队列对SPFA进行优化的一种算法优化。而SPFA的基本思路为:用数组d记录每个结点的最短路径估计值,而且用邻接表来存储图G。设立一个先进先出的队列用来保存待优化的结点,优化时每次取出队首结点u,并且用u点当前的最短路径估计值对离开u点所指向的结点v进行松弛操作,如果v点的最短路径估计值有所调整,且v点不在当前的队列中,就将v点放入队尾。这样不断从队...
2019-02-13 22:02:52 213
原创 队列
什么是队列? 队列就是一种先进先出的数据结构,如下图。(画风不好) 我们来试着存一下队列:#include<bits/stdc++.h>using namespace std;int f,l,n,a[10001];int main(){ scanf("%d",&n);for(int i=1;i<=n;i++){ a[++l]=i;}...
2018-12-09 21:15:08 103
原创 单源最短路径----prim算法
这一题是用二维数组将点存入。 scanf("%d%d%d",&x,&y,&z); if(a[x][y]!=0){ a[x][y]=min(a[x][y],z); } else a[x][y]=z;至于那个判断则是判重边啦。先将每个点的权值赋最大(d数组存点的值)。const int inf=100000000;......for(i=1;i...
2018-10-23 21:12:22 868
原创 谈论贪心
欢迎各位于百忙之中来看我的算法博客,这主要是为新手准备的资料,而会的大佬可以忽略。贪心算法是一种策略算法,没有特定格式,用策略求解即可。首先,使用贪心算法要满足该问题的局部解可以满足全局最优解。 举个栗子例子:现在有X个包,每个包有Y种物品,每个物品的价格为z[x][y],现在从每个包里拿出N个物品,如何使总价值最大? 如: X=3,Y=2,N=1;z[x][y]=(3 4) (5...
2018-10-23 21:07:41 108
原创 二叉树——kruskal
~~已会各位大佬们可以跳过QwQ~~ , 今天我们用Kruskal算法来解这道题。1. 定义 int fa[1000100],i,j,k,n,m,s,ans;//基本变量:) struct eige{ int x,y,z;}a[1000100];//主要是为了排序2. 排序函数定 int cmp(eige u,eige v){ return ...
2018-10-16 19:22:27 150
原创 二分图匹配
首先,什么是二分图?——二分图,顾名思义,就是由两个子集组成的特殊图论模型,如下图可以将大写字母看作男生,将小写字母看作女生,则A男生与b女生之间有好感,且C男生与b女生之间也有好感。那么,二分图匹配又有什么用?——二分图匹配主要用于寻找增广路径的运算,接下来我们就来介绍一种算法:匈牙利算法!比如说上图(还是那张恶心的图......),A男生与b女生之间有好感,可是男生与b...
2018-10-15 23:47:39 136
原创 拓扑排序
对一个有向无环图(Directed Acyclic Graph简称DAG)G进行拓扑排序,是将G中所有顶点排成一个线性序列,使得图中任意一对顶点u和v,若边(u,v)∈E(G),则u在线性序列中出现在v之前。通常,这样的线性序列称为满足拓扑次序(Topological Order)的序列,简称拓扑序列。 1.每个顶点出现且只出现一次。2.若存在一条从顶点 A 到顶点 B ,则A为B的前序...
2018-10-02 23:27:02 88
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人