摘要: Kruskal算法(加边法) 思路: 首先对边的权值从小到大进行排序,而后遍历查看每一条边,循环以下步骤: 1)若该边两端顶点分属不同连通分量,则将此边加入,之后将其两端顶点合并为同一个连通分量; 2)若该边两端顶点已属于同一连同分量,则舍弃,继续查看下一条权值最小的边。 Code: #includ 阅读全文
posted @ 2019-11-27 17:57 HOLLAY 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 拓扑排序 对一个有向无环图(Directed Acyclic Graph简称DAG)G进行拓扑排序,是将G中所有顶点排成一个线性序列,该排序满足这样的条件——对于图中的任意两个结点u和v,若存在一条有向边从u指向v,则在拓扑排序中u一定出现在v前面。 当且仅当一个有向图为有向无环图(DAG)时才存在 阅读全文
posted @ 2019-11-04 22:20 HOLLAY 阅读(961) 评论(0) 推荐(0) 编辑
摘要: 题意 有N(1<=N<=5000)个点,m条边(1<=M<=50000)。起点可以是任何一个入度为0的点,终点是N。求从起点到终点的所有路中,经过次数最大的一条路。输出经过次数。(规定每个点需要连接到编号更大的点,且不存在循环) 题解 该图为DAG(有向无环图),可利用拓扑排序,正反向建图分别进行两 阅读全文
posted @ 2019-10-29 20:29 HOLLAY 阅读(243) 评论(0) 推荐(0) 编辑
摘要: 直接上代码 阅读全文
posted @ 2019-10-06 11:00 HOLLAY 阅读(217) 评论(0) 推荐(0) 编辑
摘要: strstr(T,S) 函数: 这是一个字符串处理函数,用于判断字符串S是否是字符串T的子串。如果是,则该函数返回S在T中首次出现的地址;否则,返回NULL。 头文件:#include <string.h> 函数原型:char *strstr(const char *str1, const char 阅读全文
posted @ 2019-10-06 10:55 HOLLAY 阅读(5038) 评论(0) 推荐(0) 编辑
摘要: 函数调用传递实参的两种做法: 补充: int x=5;int *y=&x; //用于指针传递,y有自己独立的内存地址,存储的内容是x的地址,*y是x的值,即*y等于5。int &z=x; //用于引用传递,就是使z成为x的别名,修改其中任意一个另一个的值也会随之改变。 阅读全文
posted @ 2019-09-22 13:20 HOLLAY 阅读(968) 评论(0) 推荐(0) 编辑
摘要: 题目传送门 题意 T组案例,每组案例:n个灯泡(from 0 to n-1),m次操作,每次操作把区间[L,R]内的灯泡翻转(开变关,关变开),问m次操作之后有多少灯泡是亮着的。(时间限制:1000ms 内存限制:8192K) 题解 这道题不仅卡时间,更是卡内存,所以用线段树会爆内存 正解: 该题可 阅读全文
posted @ 2019-09-17 23:43 HOLLAY 阅读(286) 评论(0) 推荐(1) 编辑
摘要: 链式前向星比vector邻接表在内存性能和时间性能上更好。 链式前向星用法详见以下模板代码: 阅读全文
posted @ 2019-09-13 21:35 HOLLAY 阅读(435) 评论(0) 推荐(0) 编辑
摘要: 传送门 题意 有V个灭火点(数字1到V),这些灭火点有E条道路相互连通。现有一个消防英雄在点S,消防队分布在K个点,比较消防英雄到各个灭火点的最短路的最大值乘以系数1/C的值和消防队到各个灭火点的最短路的最大值,较小的一个获胜,输出获胜一方的最短路的最大值(若为消防英雄则输出不乘以1/C的值,平局也 阅读全文
posted @ 2019-09-08 20:48 HOLLAY 阅读(193) 评论(0) 推荐(0) 编辑
摘要: 题目 题解 这题用单纯的广搜能得到从起点到终点的最少步数,但费用却不一定是最小的,故需要在广搜的基础上加上优先队列解决。 Code 阅读全文
posted @ 2019-09-06 22:50 HOLLAY 阅读(218) 评论(0) 推荐(0) 编辑